解决方法
在为应用程序负载均衡器配置身份验证时,身份提供者 (IdP) 或应用程序负载均衡器配置错误可能会导致错误。要解决身份验证错误,请完成以下任务。
redirect_mismatch
如果您使用 Amazon Cognito,请将 callback URL(回调 URL)设置为 https://<domain>/oauth2/idpresponse。如果您使用不同的 IdP,请将 redirect URI(重定向 URI)设置为 https://<domain>/oauth2/idpresponse。
**注意:**请将 <domain> 替换为用于访问应用程序负载均衡器的域。
HTTP 401: 未授权
要解决 HTTP 401: Unauthorized(HTTP 401:未授权)错误,请更新应用程序负载均衡器和 IdP 上的以下配置,使其全部匹配:
- 发布者
- 授权端点
- 令牌端点
- 客户端 ID/客户端密钥
此外,根据您的用例,将 Action on unauthenticated request(对未经身份验证的请求执行操作)设置为 Allow(允许)或 Authenticate (client reattempt)(验证(客户端再次尝试))。
HTTP 500: 内部服务器错误
负载均衡器必须能够与 IdP 令牌端点 (TokenEndpoint) 和 IdP 用户信息端点 (UserInfoEndpoint) 进行通信。当负载均衡器与这些端点通信时,应用程序负载均衡器仅支持 IPv4。
要解决 HTTP 500: Internal Server Error(HTTP 500:内部服务器错误)的错误,请完成以下任务:
- 验证 IdP 端点 DNS 名称是否可公开解析。身份验证功能无法解析私有域名。
- 向负载均衡器安全组添加出站规则,允许流量通过 HTTPS 端口 443 流向 IdP 端点。
- 确保负载均衡器子网 ACL 允许进出 IdP 端点的流量:
对于出口规则,必须将指定目标 IP(IdP endpoints(IdP 端点))和目标 TCP 端口 443 设置为 Allow(允许)。
对于入口规则,必须将源 IP(IdP endpoints(IdP 端点))和目标 TCP 端口范围 1024-65535 设置为 Allow(允许)。
- 配置负载均衡器子网路由表以访问 IdP 端点:
对于面向互联网的负载均衡器,配置互联网网关默认路由以到达公共 IdP 端点。
对于内部负载均衡器或具有 dualstack-without-public-ipv4 IP 地址的均衡器,请配置 NAT 网关或实例默认路由以到达公共 IdP 端点。
对于所有其他网络拓扑,必须有足够的端到端路由才能到达 IdP 端点。
- 选择有效的 OAuth2 授权类型。应用程序负载均衡器支持授权码授予,以获取访问令牌。如果在 IdP 配置了错误的授权,则应用程序负载均衡器会生成错误。
- 确保 IdP 令牌或用户信息端点在 5 秒内做出响应。
其他 HTTP 错误代码
要排查应用程序负载均衡器生成的其他 HTTP 错误代码,请参阅负载均衡器生成 HTTP 错误。
相关信息
使用应用程序负载均衡器内置身份验证简化登录
使用应用程序负载均衡器对用户进行身份验证
应用程序客户端的应用程序特定设置