托管 UI 和联合身份验证错误响应
托管 UI 中的登录过程或联合登录可能会返回错误。以下是一些可能导致身份验证以错误结束的情况。
-
用户执行了您的用户池无法完成的操作。
-
Lambda 触发器不以预期的语法响应。
-
您的身份提供者(IdP)返回错误。
-
Amazon Cognito 无法验证您的用户提供的属性信息。
-
您的 IdP 未发送与所需属性对应的声明。
当 Amazon Cognito 遇到错误时,它通过以下方式之一进行通信。
-
Amazon Cognito 发送的重定向 URL 的请求参数中存在错误。
-
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 会话期间出现的错误不包括这种形式的提供者错误消息。