我正在寻找一些建议,因为我对我的应用程序-〉Azure B2C -〉客户端应用程序之间的流程感到困惑。最终目标是让用户登录到我的应用程序,然后自动通过Azure B2C的身份验证,然后重定向到客户端应用程序,在那里进行最终授权。
步骤1,为了从我的应用程序中踢出流,我需要调用B2C的授权端点,例如:
https://xxx.b2clogin.com/xxx.onmicrosoft.com/oauth2/v2.0/authorize?p={user_flow}&client_id=xxx&nonce=defaultNonce&redirect_uri={redirect_uri}&scope=openid&response_type=code
这反过来调用我的自定义IdP的授权端点,例如:
https://example.com/connect/authorize?client_id=7xxx&redirect_uri=https%3a%2f%2fxxx.b2clogin.com%2fxxx.onmicrosoft.com%2foauth2%2fauthresp&response_type=code&scope=openid+profile+email&response_mode=form_post&nonce={nonce}&ui_locales=en-US&state={state}
它包含一个RedirectURI值,允许重定向回B2C的/oauth/authresp端点。
现在,我应该通过了B2C的身份验证。我假设应该发生的下一个部分是重定向到客户端的应用程序,以允许客户端调用B2C授权端点来获取登录用户的详细信息。
我想这就是我感到困惑的地方。B2C现在尝试重定向回在上面的步骤1中传递的{redirect_uri}。我认为这通常会返回到我的IdP,但在这种情况下,我对B2C的其他声明不感兴趣。我不需要重定向回我的自定义IdP。我是否应该阻止重定向回我的IdP,而改为重定向到客户端'的应用程序,以便客户端可以调用B2C授权端点?
恐怕我从一开始就理解错了,所以非常感谢你的建议。
1条答案
按热度按时间bvuwiixz1#
传递到
b2clogin.com
的第一个调用中的redirectUri
应该是应用程序的uri
,因此它可以完全按照您的描述进行操作-在用户在您的外部IdP上进行身份验证后,用户将重定向到B2C,B2C将您重定向到应用程序(IdP -〉B2C -〉App)。