通过 Azure AD 验证不透明的访问令牌

Posted

技术标签:

【中文标题】通过 Azure AD 验证不透明的访问令牌【英文标题】:validate opaque access token by Azure AD 【发布时间】:2022-01-17 01:23:54 【问题描述】:

Azure AD 是发出不透明的访问令牌还是只发出 JWT 令牌?

如果是,在这种情况下如何验证不透明的访问令牌?因为没有自省端点?

【问题讨论】:

您好@user217648,如果我的回答对您有帮助,您可以点赞并接受它作为答案(点击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢 你的回答没有回答我的问题。 【参考方案1】:

JWT 具有可读内容,例如您可以在 https://jwt.io/ 上看到。每个人都可以解码令牌并读取其中的信息。格式记录在RFC 7519。

另一方面,不透明标记的格式不适合您阅读。只有发行人知道格式。

这是来自https://auth0.com/docs/tokens的引述:

不透明令牌:专有格式的令牌,通常包含服务器持久存储中信息的一些标识符。要验证一个不透明的令牌,令牌的接收者需要调用发出该令牌的服务器。

一个不透明的标记是一个简单的字符串,它只是一个参考,因此,它的格式自然完全由发布它的服务器任意确定(因此称为“专有格式”)。令牌字符串在创建基础(引用)内容时确定,即当它与此令牌(作为引用或外键)引用的内容配对(关联)时

一些 JWT 框架只有身份验证令牌是 JWT,但它们使用不透明令牌作为刷新令牌。

更多信息请参考SO thread

【讨论】:

好的,谢谢。但是如何通过 Azure AD 验证不透明的令牌? 不透明令牌不传递用户的任何可识别信息。为了验证令牌并检索令牌和用户的信息,资源服务器调用授权服务器并请求令牌自省端点授权服务器。 所以你的意思是 Azure AD 有一个可以被资源服务器调用的自省端点? @user217648 对! RahulKumarShow-MT,不,MS 说 Azure AD 没有自省端点。这就是我问这个问题的原因。您能否指出一篇文章或链接来证明您所说的合理?

以上是关于通过 Azure AD 验证不透明的访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

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

无法验证从 Azure AD 获得的访问令牌签名以保护 Web API

通过邮递员从 Azure 应用服务验证令牌返回 401

在控制台应用程序中验证 Azure AD 不记名令牌

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

Azure AD Msal 拦截器访问令牌