在接收访问令牌时使用 Amazon 应用程序负载均衡器和 django oidc 提供程序对用户进行身份验证时,始终获得



我无法让 ALB 在收到access_token、refresh_token并id_token/userinfo 端点后

检查它我正在尝试使用亚马逊 ALB 和 django_odic_provider 对用户进行身份验证。我已经在 ALB 端设置了负载均衡器身份验证,测试了所有 oidc 端点(所有端点都可以访问并返回有效结果)。当我尝试进行身份验证时,我看到了 django 的登录视图,我成功进行身份验证,但在从 django 的 oidc/token 端点返回时,我在负载均衡器的 oauth2/idpresponse 页面上收到 401 未经授权。

如果我尝试使用 Cognito 和联合django_oidc_provider我也成功登录并在从授权返回到 oauth2/idpresponse时,我收到 500 服务器错误,并显示消息:异常处理授权代码。在我看来,ALB 无法阅读我的回复,但是当我检查它时,一切都按照文档中的格式格式化,并且 jwt 还可以。

通过查看日志,负载均衡器似乎在收到来自授权端点的access_token、refresh_token和it_token后,从不检查令牌和用户信息端点。

我想了解负载均衡器如何解释此响应,以便尝试找出它的问题所在。

这是令牌 endoint 响应:

{
'access_token': 'd90623245e474ee0b23a0a9ca062ba74', 
'refresh_token': '4d439d3249e64cbe9975310f84431c25', 
'token_type': 'Bearer', 
'expires_in': 3600, 
'id_token': 'eyJ... clipped ...uS9FSA'
}

这是 jwt 令牌解码:

{
"iss": "http://******/openid",
"sub": "4",
"aud": "170710",
"exp": 1564065189,
"iat": 1564064589,
"auth_time": 1564063978,
"at_hash": "KR6H0NlP_UQMXB1jDnpj-g",
"email": "*****@*********.com"
}

当然,我已经剪掉了敏感数据。

您能否建议我应该检查的下一件事是什么,以尝试解决此问题。

已解决。URL是从请求本身中提取的,并且出于某种原因将https转换为http,使.well-known/openid-configuration无效。

最新更新