2009-10-11 26 views
2

我的僱主目前通過WebServices服務器上的C#sqlDataAdapters和sqlCommands或應用程序中的組件訪問數據庫的大部分時間。這些主要是根據其功能在Intranet和Internet上運行的Windows Forms應用程序。WCF - > ILM - > Web服務 - > SQL Server

我一直在研究WCF,我覺得這對我們很合適。另外,我的經理還有一份ILM(MS身份生命週期管理服務器)副本,他希望用它來爲我們所有應用程序的身份驗證和授權提供SSO支持。

我們的應用程序從數據庫請求數據,它主要在dataTables中返回。我知道藏品更好,這只是使用的慣例。因此,我試圖找到一個安全的解決方案,通過ILM進行身份驗證,並將數據從數據集中返回給客戶端(首先,稍後遷移到集合中)。

我的問題是這個工作還是會太慢?

  1. 客戶端調用程序對WCF請求數據與ILM
  2. WCF服務器進行檢查,看是否其確定這樣做
  3. WCF調用Web服務服務器,以獲得
  4. 數據集或集合傳回數據客戶端。

如果這是可行的,我將如何去連接ILM進行身份驗證。在Web.Config文件中是否有一種簡單的方式來完成它,還是必須在自己的消息級別上執行?

在此先感謝。

回答

2

我熟悉ILM。這不是一個身份驗證服務。 ILM意味着Identity Lifecule Manager,它對它的功能做了很好的描述。它可以配置新用戶,取消配置舊用戶,並允許您在身份商店之間複製身份數據。它還提供密碼同步服務。您仍然使用Active Directory或AD LDS(ex-ADAM)或其他目錄作爲AuthN和AuthZ。

儘管ILM存儲了有關用戶的完整負載數據,但強烈建議您不要直接訪問該數據。

[編輯]

ILM不提供LDAP服務。把它看成是一個管理者:它本身並不做任何工作,它只是定期地對事物進行後期處理。隨着您的經理以電子郵件的形式移動數據,它會以賬戶詳細信息的形式移動數據。

ILM是一種用於跨目錄和數據庫管理身份的工具。在單個商店,SQL,AD或其他任何環境中考慮ILM是沒有意義的 - 它的工作是在商店之間編組數據。如果只有一家商店,它不會有任何事情要做。

下面是一個典型的場景:創建一個名爲People的SQL表,該表包含firstName,lastName,jobTitle,department,uniqueID,startDate和endDate的列。 ILM被吸引到這張表中。它每天都會導入一個新行。 ILM使用此行中的數據在AD中創建用戶標識,在Domino中創建另一個用戶標識,而在另一個SQL數據庫中創建另一個用戶標識。它使用jobTitle和department字段來分配AD中的組成員資格,Domino中的郵件列表和SQL中的權限。

用戶啓動並工作幾周後再辭職。您在表中設置endDate,ILM在其下一個導入時注意到此更改。它會更新AD帳戶在該日期到期,並存儲延遲操作以在90天后將其刪除。 90天后,它刪除該帳戶。與其他帳戶一樣。

您可以使用您的人事系統而不是SQL表格,但(a)通常不是以正確的格式或保持足夠及時的(b)他們通常會讓您有權訪問其數據。

+0

因此,如果我們的用戶目前通過SQL Server中的自定義用戶表進行管理,那麼ILM可以管理該用戶,或者我們是否應該爲這些用戶創建AD或ASP.net用戶,並讓ILM以這種方式管理他們?我們還討論了在ILM中使用LDAP。這是否提供任何身份驗證?謝謝! – JasonBlackwoodStone 2009-10-12 18:53:58

+0

根據您的意見,我已經充實了我的回覆。 – serialhobbyist 2009-10-14 12:11:26

+0

謝謝你的迴應,他們非常有幫助。所以,如果我正確地理解了我們,如果我們轉移到WCF,並且當前所有的用戶數據都存儲在SQL服務器表,ASP.NET和AD中,我們可以利用ILM同步所有這些用戶帳戶用它來同步到AD LDS(ADAM)用戶存儲,我可以使用它進行身份驗證?最後,我真的希望將所有用戶密碼,用戶組和訪問權限從SQL Server表中取出,並儘可能將它們放入AD LDS中。謝謝。 – JasonBlackwoodStone 2009-10-15 02:31:30

0

我對ILM並不是很熟悉,但我是猜測它對於特定的數據查詢非常精細。使用WCF,您可以通過執行IAuthorizationPolicylike so)並提供您自己的「委託人」來掛鉤您自己的身份提供者。我懷疑寫一個反對ILM的委託人會很容易,但是這大概是廣泛的檢查 - 「我有CustomerAudit訪問」,而不是「我可以訪問CustomerAudit爲東北部的客戶嗎? 」。

有關使用的主要一個好處是,你還可以使用方法[PrincipalPermission]檢查,所以你不需要廣泛安全檢查添加到您的代碼(CLR強制[PrincipalPermission]直接)。

相關問題