本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
了解 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:// 。您使用您的 IAM Identity Center 登录凭证来登录此门户。 |
|
IAM Identity Center 访问门户会话 | 身份验证会话 | 向调用者提供持有者访问令牌。 |
权限集会话 | SDK 在内部用于进行 Amazon Web Services 服务 调用的 IAM 会话。在非正式讨论中,您可能会看到它被错误地称为 “角色会话”。 | |
权限集凭证 | Amazon 凭证 sigv4 凭证 |
SDK 实际用于大多数 Amazon Web Services 服务 调用(特别是所有 sigv4 Amazon Web Services 服务 调用)的凭证。在非正式讨论中,您可能会看到它被错误地称为 “角色凭证”。 |
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 Services 服务 调用的凭证解析过程。
开始 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 Services 服务 调用的凭证
当您为每个服务实例化客户端对象时,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 Services 服务,例如让 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 访问门户会话未过期,则会授予此令牌。