我们如何在后端验证来自 azure AD 的访问令牌?

Posted

技术标签:

【中文标题】我们如何在后端验证来自 azure AD 的访问令牌?【英文标题】:How do we validate the access token from azure AD in backend? 【发布时间】:2021-12-17 17:40:04 【问题描述】:

我有一个来自 azure AD 的 accessToken。我需要在 python 中验证它们。我该怎么做?

【问题讨论】:

您好,欢迎来到 Stack Overflow。这不是一站式代码商店。我们希望您付出一些努力,如果您遇到问题,我们很乐意提供帮助。就目前而言,这个问题不太适合 SO。请参考How to Ask。正题:你的问题很searchable。 【参考方案1】:

其中一种变通方法是使用 PyJWT 和密码学依赖项(因为它包含二进制依赖项,所以必须针对目标操作系统创建和打包)来支持 RS256 算法。

pip install pyjwt cryptography requests
需要用于对令牌进行签名的密钥对的公钥才能对其进行验证。 我们还需要您在 Azure 门户中提供的应用 ID 以进行进一步验证。

然后使用 App ID 来验证令牌。

import jwt

app_id = 'd31a4d20-6c4a-1a40-b74d-1a3d461bb3d8'
access_token = 'XXXX'
token_header = jwt.get_unverified_header(access_token)

更多信息可以参考

参考:

    AAD OAuth2 JWT Token Validation with Python How to verify JWT id_token produced by MS Azure AD?

【讨论】:

如果我的答案对您有用,您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为填写)。这对其他社区成员可能是有益的。谢谢

以上是关于我们如何在后端验证来自 azure AD 的访问令牌?的主要内容,如果未能解决你的问题,请参考以下文章

使用 MSAL Angular 包装器在 Ionic 4 中处理来自 Azure AD 的回调

openid connect owin 如何验证来自 Azure AD 的令牌?

如何配置 Azure AD 访问令牌的过期时间(使用 ADAL)?

Blazor 使用 Azure AD 身份验证允许匿名访问

当用户的 AD 身份验证失败时如何导航到自定义访问被拒绝页面(.net 3.1 核心与 OpenIDConnect Azure AD 身份验证)

跨Azure AD资源