本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Sign-In 使用 OAuth 2.0
OAuth 概述
借助 AWS Sign-In 行业标准的 OAuth 2.0 支持,代理和应用程序可以使用 OAuth 授权访问支持的 AWS 服务。
OAuth 可与您现有的 AWS 身份和授权模型集成。应用程序通过获取短期的 OAuth 令牌。 AWS Sign-InOAuth 令牌适用于您现有的 IAM 身份、策略、服务控制策略 (SCP)、资源控制策略 (RCP) 和其他授权控制。 AWS OAuth 引入了基于标准的授权模型,但未更改 AWS 资源访问的管理方式。
使用 AWS Sign-In,您可以通过浏览器(交互式)对应用程序进行授权,或者具有现有 AWS 凭据的应用程序可以通过编程方式(非交互式)获取 OAuth 访问令牌。
支持的功能
AWS Sign-In 提供以下 OAuth 功能。
| 能力 | 说明 |
|---|---|
| 交互式授权 | Browser-based 为用户提供 OAuth 授权。 |
| Non-interactive 授权 | 使用现有 AWS 凭据对代理和应用程序进行 OAuth 授权,无需浏览器。 |
| 代币管理 | 发行和反省访问和刷新令牌,并撤销刷新令牌。 |
| 动态客户注册 | 向注册批准的 OAuth-compatible 应用程序 AWS Sign-In。 |
| IAM 集成 | 使用 IAM 权限、资源和条件密钥管理 OAuth 授权。 |
| CloudTrail 整合 | 使用审计 OAuth 授权和令牌生命周期事件。 AWS CloudTrail |
OAuth 的工作原理
中的 OAuth 授权 AWS Sign-In 遵循 OAuth 2.0 标准。
-
代理或应用程序请求授权以访问支持的 AWS 服务。
-
AWS Sign-In 对用户进行身份验证。
-
AWS Sign-In 发放 OAuth 令牌,授权应用程序代表用户访问所请求的 AWS 服务。
-
该 AWS 服务使用现有的 AWS 授权模型评估每个请求,包括 IAM 策略、服务控制策略 (SCP)、资源控制策略 (RCP)、权限边界和其他适用的控制措施。
OAuth 令牌授权应用程序访问支持的 AWS 服务。他们不授予其他 AWS 权限。应用程序只能执行经过身份验证的 IAM 身份已经允许的操作。
授权模型
AWS Sign-In 支持两种 OAuth 授权模型。
交互式授权
交互式授权适用于使用基于浏览器的身份验证的开发人员。
AWS Sign-In 使用代码交换证明密钥 (PKCE) 强制执行 OAuth 2.1 授权码授予。当应用程序需要授权时,它会将用户重定向到 AWS Sign-In,用户在那里进行身份验证、查看授权请求并授予同意。
成功授权后, AWS Sign-In 出现以下问题:
-
访问令牌 — 授权应用程序访问支持的 AWS 服务的 Short-lived OAuth 令牌(最多一小时)。
-
刷新令牌 -用于获取新的访问令牌,无需用户再次进行身份验证。 AWS Sign-In 自动管理授权应用程序的令牌刷新。
交互式授权支持:
-
IAM 用户
-
AWS 账户 root 用户
-
IAM Identity Center 用户
-
SAML 和自定义身份代理用户
有关使用交互式授权连接代理的演练,请参阅AWS MCP 服务器。
Non-interactive 授权
Non-interactive 授权适用于已经拥有 AWS 凭据且无法执行基于浏览器的身份验证的代理和应用程序。
AWS Sign-In 使用 AWS 签名版本 4 (SigV4) 证书而不是静态 OAuth 客户端密钥实现 OAuth 2.0 客户端凭据授予。应用程序使用现有 AWS 凭据对 AWS Sign-In 令牌端点进行身份验证,并收到一个短期的 OAuth 访问令牌,该令牌可用于访问支持的服务。 AWS
客户端凭据授予仅颁发访问令牌(不授予刷新令牌)。当前令牌到期时请求新的访问令牌。
有关使用非交互式授权连接应用程序的演练,请参阅。AWS MCP 服务器
安全模型
OAuth 授权与现有 AWS 的安全模型集成。 AWS Sign-In 通过以下 OAuth-specific 功能扩展了此授权模型,包括:
-
用于 OAuth 授权和令牌管理的 IAM 操作。有关操作、资源和条件键,请参阅 AWS Sign-In。
-
OAuth 授权授予资源。有关操作、资源和条件键,请参阅 AWS Sign-In。
-
OAuth-specific IAM 条件密钥。请参阅OAuth 条件密钥。
-
AWS CloudTrail 审计 OAuth 授权和令牌生命周期事件。请参阅监控 OAuth 活动。
-
交互式授权流程需要 OAuth 2.1 的 PKCE(代码交换证明密钥)。
-
Single-use 授权码和轮换一次性刷新令牌以防止重播攻击。
-
VPCE 支持 OAuth API。请参阅AWS PrivateLink。
-
支持 DCR 中的可信重定向 URI。
这些功能允许管理员使用他们已经使用的相同的 IAM 授权模型来管理 OAuth 授权。 AWS
OAuth 终端节点
AWS Sign-In 提供以下 OAuth 端点。
| 端点 | 路径 | 说明 |
|---|---|---|
| Authorization | /v1/authorize |
启动交互式授权流程。 |
| 令牌 | /v1/token |
交换授权码、刷新令牌或客户端凭证以获取 OAuth 令牌。 |
| 反省 | /v1/introspect |
返回有关 OAuth 令牌的元数据。 |
| 吊销 | /v1/revoke |
撤消刷新令牌。 |
| 动态客户注册 | /v1/register |
向注册经批准的 OAuth 客户端。 AWS Sign-In仅接受列入许可名单的重定向 URI。 |
使用此区域终端节点进行 OAuth 流程,网址为。https://{region}.oauth.signin.aws有关可能的区域值的列表,请参阅AWS Sign-In终端节点中的区域列。