OAuth2.0 补助金 - Amazon Cognito

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

OAuth2.0 补助金

Amazon Cognito 用户池 OAuth 2.0 授权服务器发布令牌以响应三种类型的 OAuth 2.0 授权授权。您可以为用户池中的每个应用程序客户端设置支持的授权类型。您不能在同一应用程序客户端中启用客户端凭证授予作为隐式授权码 授予。隐式和授权码授予的请求从对端点授权开始,而客户端凭证授予的请求从令牌端点开始。

授予授权代码

为了响应您成功的身份验证请求,授权服务器会在您的回调URL中附加一个code参数中的授权码。然后,您必须与令牌端点交换 ID、访问令牌和刷新令牌的代码。要请求授权码授予,请在请求中将 response_type 设置为 code。有关示例请求,请参阅授予授权代码

授权码授予是最安全的授权授予形式。它不会直接向您的用户显示令牌内容。相反,您的应用程序负责检索和安全存储用户的令牌。在 Amazon Cognito 中,授权码授予是从授权服务器获取所有三种令牌类型(ID、访问和刷新)的唯一方法。您也可以通过 Amazon Cognito 用户池从身份验证中获取所有三种令牌类型API,但API不会颁发范围以外的访问令牌。aws.cognito.signin.user.admin

隐式授予

为了响应您成功的身份验证请求,授权服务器会在您的回调URL中附加一个access_token参数中的访问令牌,并在id_token参数中附加一个 ID 令牌。隐式授予不要求与令牌端点进行额外的交互。要请求隐式授予,请在请求中将 response_type 设置为 token。隐式授予仅生成 ID 和访问令牌。有关示例请求,请参阅不带 openid 范围的令牌授予

隐式授予是旧版授权授予。与授权码授予不同,用户可以拦截和检查您的令牌。要防止通过隐式授予交付令牌,请将您的应用程序客户端配置为仅支持授权码授予。

客户端凭证

客户凭证是一种仅限授权的访问授权。 machine-to-machine要获得客户凭证授予,请绕过对端点授权,并直接向令牌端点生成请求。您的应用程序客户端必须具有客户端密钥,并且仅支持客户端凭证授予。为了响应您的成功请求,授权服务器会返回访问令牌。

来自客户端凭证授予的访问令牌是一种包含 OAuth 2.0 范围的授权机制。通常,令牌包含自定义范围声明,这些声明授权HTTP操作受访问保护APIs。有关更多信息,请参阅 作用域、M2M 以及APIs带资源服务器的场景

客户凭证授予会增加您的 AWS 账单费用。有关更多信息,请参阅 Amazon Cognito 定价

有关这些赠款及其实施的更多视角,请参阅如何在 Amazon Cognito 中使用 OAuth 2.0:在AWS 安全博客中了解不同的 OAuth 2.0 授权