1

一些背景資料:Azure的AD SSO多租戶應用程序/ AD FS聲明提供問題

我公司(充當SP)當前處理SSO與我們的聯盟夥伴方(IdP的)通過AD FS 2.0。每個合作伙伴都設置爲聲明提供程序,並創建用於轉換將發送到我們的Web應用程序的傳入聲明的規則。

認證之後含有權利要求中的令牌被髮布到其中的權利要求變換和由OWIN中間件先於帳戶查找/創建發送到我們的web應用程序的URL(例如https://companyname.ca/externalsignin.aspx)和處理我們的STS端點(例如https://sts.companyname.ca/adfs/ls)。

這一切都完美。現在我們負責將Azure AD SSO集成到組合中,以幫助簡化入職流程。

我已經儘可能在Azure中創建一個新目錄並在其中創建一個新應用程序。我已將該應用程序標記爲多租戶,並將回覆網址設置爲「https://sts.companyname.ca/adfs/ls」。在服務器上的AD FS 2.0客戶端中,我創建了一個名爲「AzureAD」的新聲明提供程序,並從Azure控制檯上的應用程序的端點部分導入了metadataurl。使用我們的Tenant的電子郵件測試日誌非常完美。從另一租戶組織電子郵件進行測試時,問題在於,認證失敗,錯誤請求消息:

Bad Request Image

一些研究,看來這是由於登錄表單被構建login.microsoftonline後。 com/tenantid,而login.microsoftonline.com/common應該用於多租戶應用程序。因此,我重新從https://login.microsoftonline.com/common/federationmetadata/2007-06/federationmetadata.xml重新導入了元數據並進行了更新。 enter image description here

現在我實際上可以在使用另一個租戶組織帳戶登錄時看到同意請求,但是在身份驗證後,sts.companyname.ca/adfs/ls發佈失敗,因爲該令牌已針對「sts.windows .net/0000-000000-000000-0000「,但AD FS中的聲明提供程序由sts.windows.net/{tenantid}佔位符標識。

我不知道如何使這個工作只有一個單一的Azure聲明提供程序的模板化的終點(我也只能添加1個天藍色的聲明提供程序,因爲他們都使用相同的簽名證書)。

任何幫助克服這個障礙將不勝感激。

回答

2

這不會因爲在Azure上廣告的發佈與ADFS約束不允許使用相同的簽名密鑰多重索賠提供商的信任令牌(相同的簽名密鑰,但不同的租戶發行人)一個阻抗不匹配的工作。

做到這一點的方法是下列之一

  1. 使用Azure的AD B2B邀請來自一個或多個Azure的AD租戶客人到您的Azure的AD租戶,然後掛鉤ADFS到租客爲一體CP信任。
  2. 在ADFS 2016中,我們還要求將每個Azure AD租戶視爲不同的CP信任關係,並使用不同的關於聲明接受/增強的政策/規則。爲此,我們現在允許每個Azure AD租戶建模爲唯一的CP信任。

希望能回答你的問題。

謝謝 // Sam(@MrADFS)

+0

謝謝。 Azure AD B2B看起來可能是要走的路。看來邀請外部用戶的過程依賴於導入最多2000行的csv文件。這是否要求我們每次邀請新用戶加入合作伙伴租戶,以便他們能夠訪問我們的資源?我們的合作伙伴是學校董事會,其中一些擁有100,000多名用戶,需要隨時添加新學員。 – jeramie

+1

我最終編寫了一些額外的代碼,將OpenIdConnectAuthentication與其他提供者一起使用,而不是通過ADFS來完成。乾杯! – jeramie

相關問題