簡體   English   中英

Windows Azure ACS,具有Active Directory作為SSO的身份提供者

[英]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的優勢在於

  1. 它可以用於執行聲明轉換,而無需編寫任何代碼(例如在自定義的ClaimsAuthenticationManager中)。 您將無法處理復雜的轉換,但是簡單的轉換就可以了。
  2. 它可以為多個身份提供者提供聯合身份,因此,如果您的用戶寧願使用Facebook而不是WAAD,它會更加靈活。

但是,不利的一面

  1. 配置更加復雜,並且是解決方案中另一個可能出錯的部分
  2. ACS命名空間綁定到單個Azure區域,因此將很難從中恢復數據中心的故障

我必須在以前的應用程序中將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM