簡體   English   中英

Azure B2C - 無法讓 B2C 用戶流與另一個 Azure AD 實例一起作為自定義身份提供商

[英]Azure B2C - Can't get a B2C user flow to work with another Azure AD instance as a custom identity provider

我已經設置了一個 B2C 實例 OK 並設法獲得一個基本的 Blazor(服務器)應用程序使用 Microsoft Identity Platform(使用 AD 組獲取權限 - 這很麻煩但有效)。

但是,我正在嘗試使用外部 Azure AD 作為用戶流中的自定義身份提供者,這樣我不僅限於電子郵件/ID/社交帳戶,還可以讓來自其他目錄的來賓帳戶使用該應用程序而無需必須管理他們的登錄。 為此,我在 AD 租戶中執行了 web 應用程序注冊,我想使用它來驗證這些帳戶(如幾個教程中所建議的)。

我在外部 AD 中注冊的應用程序具有格式為“https://{My B2C Directory Name}.b2clogin.com/{My B2C Directory Name}.onmicrosoft.com/oauth2/authresp”的重定向 URI,它與我的 B2C 實例的名稱,我已經添加了從該應用程序注冊生成的客戶端 ID 和密碼,並將詳細信息放入我為登錄流程創建的自定義身份提供程序中,按照此處的說明(包括映射等)。 ):

https://learn.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-azure-ad-single-tenant?pivots=b2c-user-flow

我還在這里找到了一個稍舊的教程,它與我試圖遵循的非常相似(不同的映射)(並調整了過時的部分)。

https://medium.com/the-new-control-plane/connecting-azure-ad-b2c-to-azure-ad-via-the-b2c-custom-identity-provider-42fbc2832e32

但是,當我運行用戶流程時,我得到“AADSTS900971:未提供答復地址。” - 即使我直接從 B2C 中的“用戶流程”選項卡運行流程,並將“回復 URL”明確設置為“http://jwt.ms”(只是為了捕獲令牌內容),也會發生這種情況。

我對缺少回復 URL 感到困惑,因為它們存在於兩個已注冊的應用程序中。 此外,這並不是說它們不匹配,只是根本沒有設置(但似乎是)。

感覺就像我錯過了一些簡單的東西 - 有人知道那可能是什么嗎?

好的,所以我做了幾件事來解決這個問題:

在我要驗證的 AD 中重新注冊應用程序(再次遵循本教程: https://learn.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-azure-ad-single -tenant?pivots=b2c-user-flow )

我很小心地確保重定向 URI 的格式為:

https://{B2C 實例名稱}.b2clogin.com/{B2C 實例名稱}.onmicrosoft.com/oauth2/authresp

都是小寫的

我還必須從僅“登錄”用戶流程更改為“注冊、登錄”用戶流程,然后將自定義身份提供程序應用於該流程。 顯然,您甚至需要來自另一個 AD 的用戶能夠完成他們的邀請過程(否則您最終會遇到用戶不存在的錯誤 - 即使您已經邀請/將他們添加到 B2C 用戶列表)。

我還選擇在 API 權限選項卡下為在外部 AD 中注冊的應用程序(用於自定義身份提供者)選擇“授予管理員對默認目錄的同意”。

該流程現在似乎可以正常工作。 唯一有用的是只邀請注冊、登錄流程,這樣您就可以邀請特定的人而不會中斷邀請流程。

如果有人知道該怎么做,請張貼一些東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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