本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SAML 2.0 和 OAuth 2.0
IAM Identity Center 使您能够为用户提供对 SAML 2.0 或 OAuth 2.0 应用程序的单点登录访问权限。以下主题提供了对 SAML 2.0 和 OAuth 2.0 的综合概述。
SAML 2.0
SAML 2.0 是一种用于安全交换 SAML 断言的行业标准,它在 SAML 机构(称为身份提供商或 IdP)与 SAML 2.0 使用者(称为服务提供商或 SP)之间传递用户的相关信息。IAM Identity Center 使用此信息为有权在访问门户中使用应用程序的用户提供联合单点登录 Amazon Web Services 访问权限。
OAuth 2.0
OAuth 2.0 协议允许应用程序在不共享密码的情况下安全地访问和共享用户数据。这项功能提供了一种安全、标准化的方式,让用户允许应用程序访问其资源。通过不同的 OAuth 2.0 授予流程,访问变得更加便利。OAuth 2.0 授予的基本流程涉及用户、称为客户端的应用程序、授权服务器和资源服务器。
IAM Identity Center 通过 OpenID Connect (OIDC) 网络服务支持基于 OAuth 2.0 的身份联合验证。OIDC 服务允许诸如之类的应用程序注册公共 OAuth 2.0 客户端。 Amazon CLI有关更多信息,请参阅 Amazon IAM Identity Center OIDC API 参考。这些注册的客户端可以在用户通过身份验证和授权后,利用受支持的 OAuth 2.0 授予获取访问令牌,并且如果适用,还可以获取刷新令牌。然后,应用程序可以使用此访问令牌代表用户访问受 OAuth 2.0 保护的资源,例如 IAM Identity Center 集成的 API 端点。有些 OAuth 2.0 授予还提供刷新令牌,刷新令牌的使用寿命更长,可用于在现有访问令牌过期后生成新的访问令牌。
受支持的授予
OAuth 2.0 框架规范提供了不同的授予类型,以支持各种客户端,并提供了创建自定义授予类型的规范。授予类型是指应用程序获取访问令牌的方式。IAM Identity Center 目前支持以下授予类型。
设备授权授予
IAM Identity Center 目前支持 OAuth 2.0 设备授权授予 (RFC 8628
如果应用程序将来需要访问受保护的资源,它会向 OIDC 服务发送请求以启动设备授权。此请求会返回验证 URL 和设备代码。通过 IAM Identity Center 身份验证的用户需要使用此设备代码,并明确授予应用程序对所请求资源的访问权限。用户授予访问权限后,应用程序可以将设备代码交换为访问令牌和刷新令牌。
访问范围
范围定义了 OAuth 客户端向用户或授权服务器请求的代表用户执行某些操作或访问特定资源的特定权限或访问权限。范围是资源服务器对与操作和资源相关的权限进行分组的一种方式,它们指定了客户端可以请求的粗粒度操作。
OIDC 服务客户端使用 OAuth 2.0 (RFC 6749) 第 3.3 节scope
值来指定要为访问令牌请求哪些访问权限。与访问令牌关联的范围决定了哪些资源在用于访问受保护的资源(例如 IAM Identity Center 集成的服务 API)时可用。
在请求访问令牌时,您最多可以指定 25 个范围。
注册公共客户端时,IAM Identity Center OIDC 服务支持的访问范围
范围 | 描述 | 支持的区域 | 支持的服务 |
---|---|---|---|
sso:account:access |
访问 IAM Identity Center 管理型账户和权限集。 | IAM Identity Center 支持的所有区域 | IAM Identity Center |
codewhisperer:completions |
Amazon CodeWhisperer 将通过分析您的代码来检测安全漏洞。 | 仅限美国东部(弗吉尼亚州北部)(us-east-1) | Amazon 构建者 ID |
codewhisperer:analysis |
Amazon CodeWhisperer 将根据您的 IDE 中的现有代码和自然语言注释以代码形式生成建议。 | 仅限美国东部(弗吉尼亚州北部) | Amazon 构建者 ID |
codecatalyst:read_write |
读取和写入您的 Amazon CodeCatalyst 资源,允许访问您的所有现有资源。 | 仅限美国东部(弗吉尼亚州北部) | Amazon 构建者 ID |