[英]Windows Azure ACS with Active Directory as identity provider for SSO
我們有一些基於.NET的Web應用程序。 該應用程序的用戶群包括注冊以檢查其賬單的移動訂戶。 該計划是在我的應用程序中提供單一登錄。 為此,我們正在探索將Windows Azure ACS與Active Directory一起用作我的應用程序用戶的身份提供者。 通過將Windows Azure ACS與Active Directory用作身份提供者,我們走上了正確的軌道嗎?
Windows Azure的Active Directory是單點登錄一個很好的選擇,但它並沒有與 ACS使用,因為在這里可以看到
http://msdn.microsoft.com/en-us/library/windowsazure/dn151790.aspx#BKMK_Connecting
ACS的優勢在於
但是,不利的一面
我必須在以前的應用程序中將ACS與WAAD一起使用,因為(由於某種原因) ASP.Net MVC防偽保護依賴於類型聲明
http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider
不是由WAAD 發布的。 我在ACS中使用了簡單的聲明轉換規則來轉換WAAD發布的類型的聲明
http://schemas.microsoft.com/identity/claims/identityprovider
轉化為等價的類型
http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider
這是當時我想解決問題的唯一方法,因此值得在我的情況下使用ACS。 由於當時項目的時間壓力,我從未發現您是否可以僅使用WAAD(可能使用圖形API)來完成此操作。
為了回答您評論中的其他問題,如果您使用的是WS-Federation或OAuth 2,則無法替換登錄頁面。這些方法的關鍵點在於,用戶僅將其憑據輸入到(受信任的)身份提供者提供的用戶界面。 我認為您可以用自己的一個替換圖像。 也許您可以使用自己的UI收集用戶憑證並使用WS-Trust端點獲取令牌,但這在一定意義上不會為您提供真正的Web SSO,因為登錄會話不會在不同的Web應用程序之間自動流動。 。
實際上,在ACS中有一種解決方法可將AAD設置為身份提供者。 http://www.cloudidentity.com/blog/2013/10/03/provisioning-a-windows-azure-active-directory-tenant-as-an-identity-provider-in-an-acs-namespacenow-point-點擊/
基本上,要做的是在ACS中將AAD創建為身份提供者時,添加FederationMetadata.xml URL。
之后(在VS 2012中),有一個新的實用程序“身份和訪問”,可以讓您選擇IP,並在ACS中創建一個新組,在其中必須添加我們需要的聲明轉換規則(表示帖子中的內容應在代碼中檢查,因為聲明已更改)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.