如何使用Python验证Microsoft AD授予的OAuth 2.0令牌?

时间:2020-09-18 13:55:23

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

我打算在后端使用python创建一个简单的Web服务,该服务可以使用Azure AD进行OAuth2登录。 微软的有关在浏览器中登录用户并从认证中获取令牌的文档在以下位置非常清楚:https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow

但是,在服务器端没有提及令牌的验证。我是否必须使用一些参数调用HTTP api到授权端点,或者可以轻松地验证令牌而无需将其发送到Microsoft的服务器?我对此一无所知,而且似乎也找不到任何信息。

1 个答案:

答案 0 :(得分:1)

您需要将令牌解码为JWT格式,并需要验证令牌的签名和声明。请参阅here

要验证id_token或access_token,您的应用应验证 令牌的签名和声明。要验证访问令牌, 您的应用还应该验证发行人,受众群体和 签名令牌。这些需要根据 OpenID发现文档。例如,与租户无关的版本 文档的位于 https://login.microsoftonline.com/common/.well-known/openid-configuration