【问题标题】:How to get a v2 jwt token when authorizing against AzureAD in Postman在 Postman 中授权 AzureAD 时如何获取 v2 jwt 令牌
【发布时间】:2020-07-19 22:22:32
【问题描述】:

我可以通过以下设置获得v1.0 jwt token

如何让https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize 端点返回 v2.0?

【问题讨论】:

    标签: oauth-2.0 jwt azure-active-directory postman


    【解决方案1】:

    首先我们需要在广告中创建“支持的帐户类型”为Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)的应用。(当我们选择此选项时,其Manifest中的属性accessTokenAcceptedVersion将为2)。

    然后我们需要在其中添加一个作用域,并且当我们请求访问令牌时,我们需要使用openid api://xxxxxx/User.read 而不是邮递员中的openid 作为您提供的屏幕截图。

    之后,我们可以请求访问令牌(v2)

    解析访问令牌,它将显示 v2。

    关于如何添加范围的更新:

    我们可以在门户的应用程序中添加范围(如下图所示):

    然后我们可以直接从这里复制作用域,如下所示:

    【讨论】:

    • 您确定这是 v2 令牌吗?因为这似乎与我正在做的事情几乎相同。我只是使用邮递员向导来生成呼叫。如果您将该令牌放入jwt.io,它是"ver": "1.0", 还是"ver": "2.0",
    • 嗨@Snæbjørn 我已经更新了我的答案,请检查“更新”。
    • @Snæbjørn 抱歉,我之前提供的更新有问题。我在之前的更新中获得了 id 令牌 v2 但没有访问令牌 v2。我已经修改了答案并删除了所有无用的内容。请检查。
    • 嗨@Snæbjørn 请问您的问题是否解决了?如果解决方案正常,请您将其标记为“已接受”,谢谢~
    • 嗨@Snæbjørn 看来您不清楚如何在应用程序中添加范围。 uri api://xxxxxx/User.read 应该添加到范围内并自动生成,但不能由我们组合。很抱歉我之前提供的步骤不够详细。我已经更新了答案,请查看“关于如何添加范围的更新”。
    【解决方案2】:

    对我来说,在清单中设置 "accessTokenAcceptedVersion": 2 解决了这个问题。无需对应用注册进行进一步更改。

    【讨论】:

    • 谢谢,您可以使用 Azure Functions 的新身份验证方法(而不是经典)
    猜你喜欢
    • 2021-04-07
    • 2021-01-19
    • 2017-08-22
    • 2021-08-06
    • 2021-01-19
    • 2021-07-29
    • 2021-03-24
    • 2019-06-04
    • 1970-01-01
    相关资源
    最近更新 更多