了解 IAM Identity Center 身份验证 - Amazon 软件开发工具包和工具
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

了解 IAM Identity Center 身份验证

相关 IAM Identity Center 术语

以下术语可帮助您了解 Amazon IAM Identity Center 背后的流程和配置。对于其中一些身份验证概念,Amazon SDK API 的文档使用的名称与 IAM Identity Center 不同。知道这两个名字会很有帮助。

下表介绍了备用名称之间的关系。

IAM Identity Center 名称 SDK API 名称 描述
Identity Center sso 尽管已重命名 Amazon 单点登录,但出于向后兼容目的,sso API 命名空间仍将保留其原始名称。有关更多信息,请参阅 Amazon IAM Identity Center 用户指南中的 IAM Identity Center 重命名

IAM Identity Center 控制台

管理控制台

用于配置单点登录的控制台。
Amazon 访问门户 URL 您的 IAM Identity Center 账户独有的 URL,例如 https://xxx.awsapps.com/start。您使用您的 IAM Identity Center 登录凭证来登录此门户。
IAM Identity Center 访问门户会话 身份验证会话 向调用者提供持有者访问令牌。
权限集会话 SDK 在内部用于进行 Amazon Web Service 调用的 IAM 会话。在非正式讨论中,您可能会看到它被错误地称为 “角色会话”。
权限集凭证

Amazon 凭证

sigv4 凭证

SDK 实际用于大多数 Amazon Web Service 调用(特别是所有 sigv4 Amazon Web Service 调用)的凭证。在非正式讨论中,您可能会看到它被错误地称为 “角色凭证”。
IAM Identity Center 凭证提供者 SSO 凭证提供者 如何获取凭证,例如提供功能的类或模块。

了解 Amazon Web Services 的SDK 凭证解析

IAM Identity Center API 将持有者令牌凭证交换为 sigv4 凭证。大多数 Amazon Web Services 都是 sigv4 API,但也有一些例外,比如 Amazon CodeWhisperer 和 Amazon CodeCatalyst。以下内容描述了支持通过 Amazon IAM Identity Center 对应用程序代码进行大多数 Amazon Web Service 调用的凭证解析过程。

开始 Amazon 访问门户会话

  • 使用您的凭证登录会话以开始该过程。

    • 使用 Amazon Command Line Interface (Amazon CLI) 中的 aws sso login 命令。如果您还没有活动会话,这将启动一个新的 IAM Identity Center 会话。

  • 启动新会话时,您将收到来自 IAM Identity Center 的刷新令牌和访问令牌。Amazon CLI 还会使用新的访问令牌和刷新令牌更新 SSO 缓存 JSON 文件,并使其可供 SDK 使用。

  • 如果您已经有一个活动会话,则该 Amazon CLI 命令将重复使用现有会话,且将在现有会话过期时过期。要了解如何设置 IAM Identity Center 会话的时长,请参阅Amazon IAM Identity Center用户指南中的配置用户的 Amazon 访问门户会话的持续时间

    • 最大会话时长已延长至 90 天,以减少频繁登录的需求。

SDK 如何获取 Amazon Web Service 调用的凭证

当您为每个服务实例化客户端对象时,SDK 提供 Amazon Web Services 访问权限。将共享 Amazon config文件的选定配置文件配置为 IAM Identity Center 凭证解析时,将使用 IAM Identity Center 来解析应用程序的凭证。

要使用 IAM Identity Center 单点登录检索 sigv4 API 的凭证,SDK 使用 IAM Identity Center 访问令牌获取 IAM 会话。此 IAM 会话称为权限集会话,它通过担任 IAM 角色提供对 SDK 的 Amazon 访问权限。

  • 权限集会话持续时间与 IAM Identity Center 会话持续时间是分开设置的。

    • 要了解如何设置权限集会话持续时间,请参阅Amazon IAM Identity Center用户指南中的设置会话持续时间

  • 请注意,在大多数 Amazon SDK API 文档中,权限集凭证也被称为Amazon凭证sigv4 凭证

权限集凭证通过调用 IAM Identity Center API 的 getRoleCredentials 返回到 SDK。SDK 的客户端对象使用该担任的 IAM 角色来调用 Amazon Web Service,例如让 Amazon S3 列出您账户中的桶。在权限集会话到期之前,客户端对象可以使用这些权限集凭证继续操作。

会话过期和刷新

使用 SSO 令牌提供商配置 时,将使用刷新令牌自动刷新从 IAM Identity Center 获取的每小时访问令牌。

  • 如果访问令牌在 SDK 尝试使用它时已过期,SDK 将使用刷新令牌来尝试获取新的访问令牌。IAM Identity Center 会将刷新令牌与您的 IAM Identity Center 访问门户会话持续时间进行比较。如果刷新令牌未过期,IAM Identity Center 将使用另一个访问令牌进行响应。

  • 此访问令牌可用于刷新现有客户端的权限集会话,也可以用于解析新客户端的凭证。

但是,如果 IAM Identity Center 访问门户会话已过期,则不会授予新的访问令牌。因此,无法续订权限集持续时间。每当现有客户端的缓存权限集会话时长超时时,它就会过期(并且访问权限将丢失)。

在 IAM Identity Center 会话到期后,任何创建新客户端的代码都将无法通过身份验证。这是因为未缓存权限集凭证。在您拥有有效的访问令牌之前,您的代码将无法创建新客户端并完成凭证解析过程。

总而言之,当 SDK 需要新的权限集凭证时,SDK 会首先检查所有有效的现有凭证并使用这些凭证。无论凭证是针对新客户端,还是凭证已过期的现有客户端,这都适用。如果找不到凭证或凭证无效,则 SDK 会调用 IAM Identity Center API 来获取新凭证。要调用 API,它需要访问令牌。如果访问令牌已过期,SDK 会使用刷新令牌尝试从 IAM Identity Center 服务获取新的访问令牌。如果您的 IAM Identity Center 访问门户会话未过期,则会授予此令牌。