如何使用 Python 在 Azure AD 中验证令牌

Posted

技术标签:

【中文标题】如何使用 Python 在 Azure AD 中验证令牌【英文标题】:How to validate token in Azure AD with Python 【发布时间】:2019-01-28 13:21:30 【问题描述】:
    我已经按照这个Azure AD demo从第1步到第4步注册了两个应用程序。 我 git 克隆了 Azure AD demo 并成功运行。 但我想请求我的自定义 API,所以我替换了 resource,但我出错了。资源 URI 显示为 http://<talent-id>/TodoListDaemon

现在,我有两个问题:

    如何设置真正的资源? 如何在我的自定义 api 中进行额外的工作

【问题讨论】:

【参考方案1】:

要验证令牌,您可以使用 PyJWT 和加密技术来支持 RS256 算法。要通过 HTTP 获取外部信息,您可以使用请求。

试试:

pip install pyjwt cryptography requests

然后使用 App ID 验证令牌。

import jwt

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

其他一些人已经在 Stack Overflow 上询问过这个问题,您可以参考他们的主题。 How to verify JWT id_token produced by MS Azure AD?

【讨论】:

我试过这个并且它有效,但即使我向令牌添加一些随机值,它仍然会返回这些标题。发生这种情况的任何原因? 读取未经验证的标题是否称为验证? pyjwt.readthedocs.io/en/latest/usage.html 您说“使用 App ID 进行验证”-然后您只需设置 app_id 变量并且从不使用它。你能解释一下吗?

以上是关于如何使用 Python 在 Azure AD 中验证令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何搭建一套Azure AD与ADFS集成身份的环境

如何通过 Azure AD B2C 使用身份验证功能在 Azure Web App 上添加身份验证?

如何使用 Postman 获取 Azure AD 刷新令牌?

Azure实践系列 2:Azure AD用户管理

如何在 ASP.NET Core 3 上同时使用 Azure AD 身份验证和身份?

如何使用PowerShell解锁Azure AD用户帐户?