如何解决应用程序负载均衡器中的身份验证问题?

1 分钟阅读
0

我在应用程序负载均衡器中配置身份验证时收到错误。

解决方法

在为应用程序负载均衡器配置身份验证时,身份提供者 (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 错误

相关信息

使用应用程序负载均衡器内置身份验证简化登录

使用应用程序负载均衡器对用户进行身份验证

应用程序客户端的应用程序特定设置

AWS 官方
AWS 官方已更新 3 个月前