一些背景資料: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的電子郵件測試日誌非常完美。從另一租戶組織電子郵件進行測試時,問題在於,認證失敗,錯誤請求消息:
一些研究,看來這是由於登錄表單被構建login.microsoftonline後。 com/tenantid,而login.microsoftonline.com/common應該用於多租戶應用程序。因此,我重新從https://login.microsoftonline.com/common/federationmetadata/2007-06/federationmetadata.xml重新導入了元數據並進行了更新。
現在我實際上可以在使用另一個租戶組織帳戶登錄時看到同意請求,但是在身份驗證後,sts.companyname.ca/adfs/ls發佈失敗,因爲該令牌已針對「sts.windows .net/0000-000000-000000-0000「,但AD FS中的聲明提供程序由sts.windows.net/{tenantid}佔位符標識。
我不知道如何使這個工作只有一個單一的Azure聲明提供程序的模板化的終點(我也只能添加1個天藍色的聲明提供程序,因爲他們都使用相同的簽名證書)。
任何幫助克服這個障礙將不勝感激。
謝謝。 Azure AD B2B看起來可能是要走的路。看來邀請外部用戶的過程依賴於導入最多2000行的csv文件。這是否要求我們每次邀請新用戶加入合作伙伴租戶,以便他們能夠訪問我們的資源?我們的合作伙伴是學校董事會,其中一些擁有100,000多名用戶,需要隨時添加新學員。 – jeramie
我最終編寫了一些額外的代碼,將OpenIdConnectAuthentication與其他提供者一起使用,而不是通過ADFS來完成。乾杯! – jeramie