View a markdown version of this page

Sign-In 使用 OAuth 2.0 - AWS Sign-In

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

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 标准。

  1. 代理或应用程序请求授权以访问支持的 AWS 服务。

  2. AWS Sign-In 对用户进行身份验证。

  3. AWS Sign-In 发放 OAuth 令牌,授权应用程序代表用户访问所请求的 AWS 服务。

  4. 该 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 功能扩展了此授权模型,包括:

这些功能允许管理员使用他们已经使用的相同的 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终端节点中的区域列。