托管 UI 和联合身份验证错误响应 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

托管 UI 和联合身份验证错误响应

托管 UI 中的登录过程或联合登录可能会返回错误。以下是一些可能导致身份验证以错误结束的情况。

  • 用户执行了您的用户池无法完成的操作。

  • Lambda 触发器不以预期的语法响应。

  • 您的身份提供者(IdP)返回错误。

  • Amazon Cognito 无法验证您的用户提供的属性信息。

  • 您的 IdP 未发送与所需属性对应的声明。

当 Amazon Cognito 遇到错误时,它通过以下方式之一进行通信。

  1. Amazon Cognito 发送的重定向 URL 的请求参数中存在错误。

  2. Amazon Cognito 在托管 UI 中显示错误。

Amazon Cognito 附加到请求参数的错误具有以下格式。

https://<Callback URL>/?error_description=error+description&error=error+name

如果您帮助用户在无法执行操作时提交错误信息,则要求他们捕获 URL 文本或页面的屏幕截图。

注意

Amazon Cognito 错误描述不是固定字符串,您不应使用依赖于固定模式或格式的逻辑。

OIDC 和社交身份提供者错误消息

您的身份提供者可能会返回错误。当 OIDC 或 OAuth 2.0 IdP 返回符合标准的错误时,Amazon Cognito 将您的用户重定向到回调 URL,并将提供者错误响应添加到错误请求参数中。Amazon Cognito 将提供者名称和 HTTP 错误代码添加到现有的错误字符串中。

以下 URL 是从返回错误的 IdP 重定向到 Amazon Cognito 的示例。

https://www.amazon.com/?error_description=LoginWithAmazon+Error+-+400+invalid_request+The+request+is+missing+a+required+parameter+%3A+client_secret&error=invalid_request

由于 Amazon Cognito 仅返回它从提供者处收到的内容,因此您的用户可能会看到这些信息的一部分。

如果用户在通过您的 IdP 进行初始登录时遇到问题,IdP 会直接向用户发送任何错误消息。当 Amazon Cognito 向您的 IdP 生成验证用户会话的请求时,它会向您的用户中继一条错误消息。Amazon Cognito 中继来自以下端点的 OAuth 和 OIDC IdP 错误消息。

/token

Amazon Cognito 交换 IdP 授权代码以获得访问令牌。

/.well-known/openid-configuration

Amazon Cognito 发现了通往发行者端点的路径。

/.well-known/jwks.json

为验证用户的 JSON 网络令牌(JWT),Amazon Cognito 发现您的 IdP 用来签署令牌的 JSON 网络密钥(JWT)。

由于 Amazon Cognito 不会启动到可能返回 HTTP 错误的 SAML 2.0 提供者的出站会话,因此,用户在与 SAML 2.0 IdP 会话期间出现的错误不包括这种形式的提供者错误消息。