【问题标题】:Azure AD JWT Token Validation optionsAzure AD JWT 令牌验证选项
【发布时间】:2020-02-05 16:56:03
【问题描述】:

Microsoft Azure AD Documentation 中,JWT 令牌验证过程被描述为验证令牌签名,然后验证其声明。

因此,验证完全在客户端进行,无需询问 Azure AD 服务器令牌是否仍然有效。

是否有任何选项可以“扩展”验证令牌,即通过查询 Azure 服务器,以便授予对资源访问权限的应用程序可以确保该人仍然被授权并且可以访问该资源.

【问题讨论】:

    标签: azure active-directory azure-active-directory


    【解决方案1】:

    不,在令牌的生命周期内授予访问权限。

    令牌有一个过期日期,您可以从exp 声明中读取该日期。您可以控制令牌的到期时间,然后要求用户在到期后重新进行身份验证。

    如果您想进行扩展验证,则需要实现该逻辑。

    ID Tokens

    Access Tokens

    Configurable token lifetimes in Azure Active Directory

    【讨论】:

    • 感谢您的回答。在以下场景中: 1. 用户通过 AAD 进行身份验证, 2. 用户从 AAD 中删除 3. 用户尝试使用在步骤 1 中收到的令牌访问受保护资源 受保护资源将提供信息,因为令牌仍未过期(即使已被撤销)?
    • 访问和身份令牌在 Azure AAD 中不会被吊销。它们只会过期。可以撤销刷新令牌。是的,服务将认为令牌有效。您需要在授权生命周期和重新认证之间进行权衡。令牌执行广泛验证的成本很高。这是它们被签名并具有生命周期的一个原因 - 以加快处理速度,因为某些 API 对每次调用都使用令牌,这将大大减慢网络响应时间。另一个因素是撤销令牌是在全球网络/服务中同步的缓慢操作。
    • 如果您愿意,当然可以查询 Graph API 以了解用户是否存在并登录启用状态,但这会带来巨大的吞吐量成本。
    • 感谢 cmets。如果我想在执行某些关键操作之前验证用户的访问权限怎么办?在这种情况下我应该调用什么 Graph API?单点注销怎么样,应用服务器能不能获取到用户被移除的信息?
    • @RichardTopchiy - 创建一个新问题,因为它更复杂,适合评论。尝试考虑将 Active Directory 访问权限授予不应拥有的应用程序的安全影响。在某些情况下,您的解决方案比问题更昂贵/风险更大。只需使用较短的令牌生命周期。
    猜你喜欢
    • 2016-12-02
    • 2019-05-13
    • 2020-07-08
    • 2020-07-12
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    相关资源
    最近更新 更多