为什么 Azure AD B2C 使用代码而不是 id_token 进行重定向?

me-*_*e-- 6 azure azure-ad-b2c

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

在此输入图像描述

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

https://jwt.ms/?code=eyJraW...
Run Code Online (Sandbox Code Playgroud)

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

更新

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

补助金

然后一切都会按预期进行。请注意,我必须启用两者

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

在此输入图像描述

response_type除了更改隐式授予的状态之外,似乎没有其他方法可以在测试用户流程 UI 中设置所需的值。也许这是自教程制作以来 Azure 门户中行为的变化……?

All*_* Wu 2

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

\n\n

如果我们不这样做,response_type=code则意味着它是授权代码流\xef\xbc\x8c 这就是为什么你会得到这个:https://jwt.ms/?code=eyJraW...

\n\n

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

\n\n

在此输入图像描述

\n