首页 > 解决方案 > 为什么 Azure AD B2C 使用代码而不是 id_token 重定向?

问题描述

我正在尝试设置 AD B2C,并且正在关注我在网上找到的各种教程。我正在测试用户流。我可以成功登录,但是当我被重定向到 时https://jwt.ms,它什么也没显示:

在此处输入图像描述

但是,我注意到我的 URL 与教程中显示的不同。它有一个code而不是id_token

https://jwt.ms/?code=eyJraW...

我一直在试图找出导致 B2C 使用代码而不是 ID 令牌重定向的原因,但没有成功。谁能告诉我为什么会发生这种情况?

更新

好的,我现在知道是什么原因造成的,但我真的不明白我的设置与我在教程中看到的不同。我发现如果我在我的应用注册中启用隐式授权,如下所示:

赠款

然后一切都按预期工作。请注意,我必须同时启用.

我还注意到,当我测试用户流时,这些隐式授权的状态决定了它是否具有response_type=code授权response_type=id_tokenURL:

在此处输入图像描述

response_type除了更改隐式授权的状态外,似乎没有办法从测试用户流 UI 中设置期望值。也许这是自制作教程以来 Azure 门户中的行为变化......?

标签: azureazure-ad-b2c

解决方案


如您所见,如果我们在 Azure AD 应用程序中设置隐式授权response_type=id_token,用户流端点将生成而不是response_type=code. 它是 Azure AD B2C 用户流的设计。

如果我们不这样做,response_type=code意味着它是授权码流,这就是你得到这个的原因:https://jwt.ms/?code=eyJraW...

我不确定您为什么要以其他方式更改 response_type。这应该是最简单的。但如果要手动更改,只需单击复制按钮,更改 response_type 值,然后在浏览器中访问即可。

在此处输入图像描述


推荐阅读