带有身份提供者和 PKCE 的 Azure AD B2C 问题
Issue with Azure AD B2C with an Identity Provider and PKCE
我设置了指向IdentityServer4在线测试版的B2C身份提供者:
https://demo.identityserver.io
我的应用程序注册是针对 SPA 应用程序的。
我的用户策略是标准的 SUSI 策略。
使用“运行 now”选项,发送以下参数:
p: B2C_1_SUSI_B2C
client_id: 5e58...620a
nonce: defaultNonce
redirect_uri: https://jwt.ms
scope: openid
response_type: code
prompt: login
code_challenge_method: S256
code_challenge: D9pGhYDch4f8F3V0MsDvaEQWH3-ssqucs3ixxTAgX6k
这包含预期的 PKCE 参数。
我得到 B2C 登录屏幕并单击 IdentityServer4 按钮。
以下参数被发送到 IdentityServer4:
client_id: interactive.public
redirect_uri: https://tenant.b2clogin.com/tenant.onmicrosoft.com/oauth2/authresp
response_type: code
scope: openid
response_mode: form_post
nonce: HZ0avacgvKw5Jyp6W4k1Tw==
ui_locales: en-US
state: StateProperties=eyJTSUQiOiJ4....
请注意,不再有任何 PKCE 参数。
IdentityServer4 响应:
Error
Sorry, there was an error : invalid_request
code challenge required
如何获取要转发的PKCE参数?
目前无法进行此操作。在这里使用 PKCE 几乎没有任何价值,因为它是机密的客户端流程。
我设置了指向IdentityServer4在线测试版的B2C身份提供者:
https://demo.identityserver.io
我的应用程序注册是针对 SPA 应用程序的。
我的用户策略是标准的 SUSI 策略。
使用“运行 now”选项,发送以下参数:
p: B2C_1_SUSI_B2C
client_id: 5e58...620a
nonce: defaultNonce
redirect_uri: https://jwt.ms
scope: openid
response_type: code
prompt: login
code_challenge_method: S256
code_challenge: D9pGhYDch4f8F3V0MsDvaEQWH3-ssqucs3ixxTAgX6k
这包含预期的 PKCE 参数。
我得到 B2C 登录屏幕并单击 IdentityServer4 按钮。
以下参数被发送到 IdentityServer4:
client_id: interactive.public
redirect_uri: https://tenant.b2clogin.com/tenant.onmicrosoft.com/oauth2/authresp
response_type: code
scope: openid
response_mode: form_post
nonce: HZ0avacgvKw5Jyp6W4k1Tw==
ui_locales: en-US
state: StateProperties=eyJTSUQiOiJ4....
请注意,不再有任何 PKCE 参数。
IdentityServer4 响应:
Error
Sorry, there was an error : invalid_request
code challenge required
如何获取要转发的PKCE参数?
目前无法进行此操作。在这里使用 PKCE 几乎没有任何价值,因为它是机密的客户端流程。