Azure AD是否会发布不透明访问令牌或仅发布JWT令牌?如果是,在这种情况下,如何验证不透明访问令牌?因为没有内省的终点
g9icjywg1#
***JWT***具有可读内容,例如在https://jwt.io/上可以看到。每个人都可以解码令牌并读取其中的信息。该格式在RFC 7519中记录。
另一方面,***opaque token***的格式不打算让您阅读。只有发行者知道格式。以下是https://auth0.com/docs/tokens的一段话:不透明代币:专有格式的令牌,通常包含服务器持久存储器中信息的一些标识符。要验证不透明令牌,令牌的接收方需要调用发出令牌的服务器。不透明令牌是一个简单的字符串,它只是一个引用,因此,自然地,它的格式完全由发布它的服务器任意确定(因此术语“专有格式”)。在创建底层(引用)内容时确定令牌串,即当它与该令牌(作为引用或外键)引用的内容配对(关联)时一些JWT框架只有身份验证令牌是JWT,但作为刷新令牌,它们使用不透明令牌。有关详细信息,请参阅此SO thread
bxgwgixi2#
这是一个古老的问题,但我把这个答案留给任何遇到这个问题的人。Azure AD不支持内省和不透明令牌。相反,微软已经实施了CAE来解决访问令牌的一些问题,主要是用户帐户更改和策略执行之间的滞后。也就是说,如果用户在令牌发布后被禁用,只要令牌有效,资源所有者就会在验证(标记、范围等)时接受它。标签:https://learn.microsoft.com/en-us/security/zero-trust/develop/secure-with-cae在本文档中,微软明确指出,内省是他们避免的一种做法,因为它会影响体验。然而,CAE并没有解决JWT令牌的其他问题,例如泄漏PII数据的可能性。如果可以选择不使用Azure AD,那么Auth0、Ory Kratos(或Ory Hydra,取决于用例)和Curity都是支持内省的好选择。
2条答案
按热度按时间g9icjywg1#
***JWT***具有可读内容,例如在https://jwt.io/上可以看到。每个人都可以解码令牌并读取其中的信息。该格式在RFC 7519中记录。
另一方面,***opaque token***的格式不打算让您阅读。只有发行者知道格式。
以下是https://auth0.com/docs/tokens的一段话:
不透明代币:专有格式的令牌,通常包含服务器持久存储器中信息的一些标识符。要验证不透明令牌,令牌的接收方需要调用发出令牌的服务器。
不透明令牌是一个简单的字符串,它只是一个引用,因此,自然地,它的格式完全由发布它的服务器任意确定(因此术语“专有格式”)。在创建底层(引用)内容时确定令牌串,即当它与该令牌(作为引用或外键)引用的内容配对(关联)时
一些JWT框架只有身份验证令牌是JWT,但作为刷新令牌,它们使用不透明令牌。
有关详细信息,请参阅此SO thread
bxgwgixi2#
这是一个古老的问题,但我把这个答案留给任何遇到这个问题的人。
Azure AD不支持内省和不透明令牌。相反,微软已经实施了CAE来解决访问令牌的一些问题,主要是用户帐户更改和策略执行之间的滞后。也就是说,如果用户在令牌发布后被禁用,只要令牌有效,资源所有者就会在验证(标记、范围等)时接受它。标签:https://learn.microsoft.com/en-us/security/zero-trust/develop/secure-with-cae
在本文档中,微软明确指出,内省是他们避免的一种做法,因为它会影响体验。
然而,CAE并没有解决JWT令牌的其他问题,例如泄漏PII数据的可能性。
如果可以选择不使用Azure AD,那么Auth0、Ory Kratos(或Ory Hydra,取决于用例)和Curity都是支持内省的好选择。