gpt4 book ai didi

将 OAuth2 代码交换为访问 token 时,Azure AD 返回非 JWT token

转载 作者:行者123 更新时间:2023-12-02 06:00:49 26 4
gpt4 key购买 nike

我的租户上有一个 Azure AD 应用程序,该应用程序配置为接受多个租户和个人帐户。

我按照此处说明的过程检索 AccessToken:https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow

当我从 Microsoft 网页收到应用程序中的“代码”时,我将其交换为调用端点“https://login.microsoftonline.com/common/oauth2/v2.0/token”的访问 token .

无论登录的用户是工作帐户还是个人帐户,行为都会有所不同。

通过工作帐户,我收到一个普通的 JWT token ,每个人都很高兴:我可以解码 token 并读取声明。

通过个人帐户,我收到另一个 token ,该 token 不是 JWT token ,而且我不知道如何执行以下操作:

  1. 验证此 token
  2. 读取用户的一些信息(特别是用户的电子邮件)

您能帮我了解如何执行这两个操作吗?

注意:我在这里看到了答案:Microsoft as OAuth2 provider for personal accounts does not issue JWT access tokens但我的情况略有不同,因为我不想使用此 token 访问 MS Graph,我只需要检索用户的电子邮件。

谢谢!

cghersi

最佳答案

根据 OAuth 规范,OAuth2 中的 access_token 不需要是 JWT。
但是 Microsoft 支持 OpenID Connect ,它提供了一个id_tokenid_token 始终是 JWT。

要将您的 OAuth 请求“升级”为 OpenID Connect 请求,您只需添加范围 openid(可能还需要添加 email 以确保您收到电子邮件)。< br/>然后,当您将 code 交换为 access_token 时,您还会获得 id_token

关于将 OAuth2 代码交换为访问 token 时,Azure AD 返回非 JWT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71442432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com