2009-09-02 50 views
5

客戶端需要主要應用程序以基於企業解決方案(Active Directory)爲用戶提供「單點登錄」身份驗證功能。 這意味着業務應用程序信任瀏覽器提供的憑據,並且不要求用戶提供標準的登錄/密碼對。服務器/瀏覽器信任基於Windows集成身份驗證機制。使用ASP.Net Web應用程序進行單點登錄

Ours是一個ASP.Net Web應用程序,在IIS 5上託管的網絡框架2.0中。我們需要實現SSO功能。我們該怎麼做?

回答

4

我很確定這與幾乎所有內聯網應用都遵循的要求相同。

如果您只是在IIS中啓用了Windows集成登錄,那麼您將被設置爲#1項目。

我不知道#2是否可能,因爲它與您的其他要求相沖突。瀏覽器只傳遞本地登錄用戶的憑據(按照#1的要求)。如果您構建了一個Web表單以通過AD進行身份驗證,那麼您將違反敘述/段落中列出的要求。

您的客戶認爲#2真的意味着什麼?他們在這裏想要什麼?一種以不同用戶身份登錄的方式?他們可以註銷計算機並以其他用戶身份登錄。

1

通常,SSO要求最好通過基於聲明的協議(如WS-Federation或SAML 2.0)解決。原則上,您可以自己實施這些協議,因爲它們是開放標準,但它需要很多專業知識。

新的Windows Identity Foundation(以前稱爲Geneva框架)包含可啓用SSO方案的協議實現,但它需要您升級平臺。

1

使用自定義表單身份驗證,而不會要求用戶輸入ID和密碼。

先決條件: 1>具有用戶的詳細信息,例如電子郵件,角色等數據庫表 2>企業活動目錄,其中用戶簡檔被存儲 3>寫VBCOM或ActiveX或其它組件,可以從讀取用戶的域和名稱Windows機器通過瀏覽器。

步驟: 在頁面加載的所有形式調用組件< 3>連接到Active Directory < 2>。該方法應該從Windows系統讀取當前用戶的名稱,域。 用這些細節搜索AD。如果存在,則查詢並提取電子郵件地址或AD用戶配置文件中的唯一密鑰。 使用此密鑰查詢數據庫< 1>您在哪裏存儲應用程序特定的用戶詳細信息,例如電子郵件,角色。 如果來自AD的用戶電子郵件與表中的電子郵件匹配,則授予用戶適當的權限,否則如果用戶不存在或角色爲空/限制,則拒絕訪問。 如果有效的用戶然後創建一個加密的cookie,並且可以被其他應用程序讀取,以真正實現任何種類的SSO。

相關問題