通过可信令牌发布者使用应用程序 - AWS IAM Identity Center

通过可信令牌发布者使用应用程序

可信令牌发布者使您可以对在 AWS 外部进行身份验证的应用程序使用可信身份传播。通过可信令牌发布者,您可以授权这些应用程序代表其用户对 AWS 托管的应用程序提出访问请求。

以下主题介绍了可信令牌发布者的工作方式,并提供了设置指导。

可信令牌发布者概述

可信身份传播提供了一种机制,允许在 AWS 外部进行身份验证的应用程序使用可信令牌发布者代表其用户发出请求。可信令牌发布者是可创建签名令牌的 OAuth 2.0 授权服务器。这些令牌对发起访问 AWS 服务(接收端应用程序)请求的应用程序(请求端应用程序)进行授权。请求端应用程序代表经过可信令牌发布者验证身份的用户发起访问请求。可信令牌发布者和 IAM Identity Center 都知道这些用户。

接收请求的 AWS 服务根据 Identity Center 目录中所示的用户和组成员资格,管理对其资源的细粒度授权。AWS 服务不能直接使用来自外部令牌发布者的令牌。

为了解决这个问题,IAM Identity Center 为请求端应用程序或请求端应用程序使用的 AWS 驱动程序提供了一种方法,将可信令牌发布者发布的令牌交换为 IAM Identity Center 生成的令牌。IAM Identity Center 生成的令牌指向相应的 IAM Identity Center 用户。请求端应用程序或驱动程序使用新令牌向接收端应用程序发起请求。由于新令牌引用了 IAM Identity Center 中的相应用户,因此接收端应用程序可以根据 IAM Identity Center 中显示的用户或其组成员资格,对请求的访问权限授权。

重要

选择将 OAuth 2.0 授权服务器添加为可信令牌发布者是一项需要仔细考虑的安全决定。仅选择您信任的可信令牌发布者执行以下任务:

  • 对令牌中指定的用户进行身份验证。

  • 授权该用户访问接收端应用程序。

  • 生成一个令牌,让 IAM Identity Center 可以将它交换成 IAM Identity Center 创建的令牌。

针对可信令牌发布者的先决条件和注意事项

在设置可信令牌发布者之前,请先查看以下先决条件和注意事项。

  • 可信令牌发布者的配置

    您必须配置 OAuth 2.0 授权服务器(可信令牌发布者)。尽管可信令牌发布者通常是您用作 IAM Identity Center 身份源的身份提供者,但也存在其他情况。有关如何设置可信令牌发布者的信息,请参阅相关身份提供者的文档。

    注意

    您最多可以配置 10 个可信令牌发布者,将它们与 IAM Identity Center 搭配使用,为此,您只需将可信令牌发布者中每个用户的身份映射到 IAM Identity Center 中的相应用户即可。

  • 创建令牌的 OAuth 2.0 授权服务器(可信令牌发布者)必须具有 OpenID Connect (OIDC) 发现端点,IAM Identity Center 可以使用该端点获取用于验证令牌签名的公钥。有关更多信息,请参阅 OIDC 发现端点 URL(发布者 URL)

  • 由可信令牌发布者颁发的令牌

    来自可信令牌发布者的令牌必须满足以下要求:

    • 令牌必须经过签名,并采用使用 RS256 算法的 JSON Web 令牌(JWT) 格式。

    • 令牌必须包含以下声明:

      • 发布者(iss)– 颁发令牌的实体。此值必须与可信令牌发布者的 OIDC 发现端点(发布者 URL)中配置的值相匹配。

      • 主体(sub)– 经过身份验证的用户。

      • 受众(aud)– 令牌的预期接收者。将令牌与来自 IAM Identity Center 的令牌交换后会访问的 AWS 服务。有关更多信息,请参阅 Aud 声明

      • 到期时间(exp)– 令牌到期的时间。

    • 令牌可以是身份令牌,也可以是访问令牌。

    • 令牌必须包含一个与一名 IAM Identity Center 用户具有唯一对应关系的属性。

  • 可选声明

    IAM Identity Center 支持 RFC 7523 中定义的所有可选声明。有关更多信息,请参阅此 RFC 的第 3 节:JWT 格式和处理要求

    例如,令牌可以包含 JTI (JWT ID) 声明。此声明(如果存在)可以防止具有相同 JTI 的令牌被重复用于令牌交换。有关 JTI 声明的更多信息,请参阅 JTI 声明详细信息

  • 使 IAM Identity Center 与可信令牌发布者协同工作的配置

    您还必须启用 IAM Identity Center,为 IAM Identity Center 配置身份源,并预置与可信令牌发布者目录中的用户对应的用户。

    为此,您必须执行以下任一操作:

    • 使用跨域身份管理系统 (SCIM) 2.0 协议,将用户同步到 IAM Identity Center。

    • 直接在 IAM Identity Center 创建用户。

    注意

    如果您使用 Active Directory 域服务作为身份源,将无法支持可信令牌发布者。

JTI 声明详细信息

如果 IAM Identity Center 收到交换令牌的请求,而该令牌已经被 IAM Identity Center 交换过,该请求将失败。要检测并防止重复使用令牌进行交换,您可以添加 JTI 声明。IAM Identity Center 可根据令牌中的声明,防止令牌被重放。

并非所有 OAuth 2.0 授权服务器都会向令牌添加 JTI 声明。有些 OAuth 2.0 授权服务器可能不允许您添加 JTI 作为自定义声明。支持使用 JTI 声明的 OAuth 2.0 授权服务器可能会仅将此声明添加到身份令牌或仅限访问令牌,也可能将其添加到两者。有关更多信息,请参阅 OAuth 2.0 授权服务器的文档。

有关构建交换令牌的应用程序信息,请参阅 IAM Identity Center API 文档。有关配置客户托管应用程序以获取和交换正确令牌的信息,请参阅该应用程序的文档。