SAML 2.0 和 OAuth 2.0 - Amazon IAM Identity Center
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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 服务允许应用程序注册为 OAuth 客户端,并使用设备授权授予流程生成访问令牌,以访问受 IAM Identity Center 保护的 API。要使用此授予,应用程序必须先向 IAM Identity Center OIDC 服务注册公共客户端。应用程序注册后,OIDC 服务会为应用程序提供客户端 ID 和客户端密钥,您可以使用这些客户端 ID 和客户端密钥通过设备授权授予生成令牌。

如果应用程序将来需要访问受保护的资源,它会向 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