oauth2-proxy userInfo API returns 数据太少。如何获取更细粒度的用户数据?

oauth2-proxy userInfo API returns too little data. how to get more granual user data?

我已经集成了oauth2-proxy with AWS Cognito leveraging Istio as described in jetstack's篇,在K8S中都是运行

现在我正在寻找一种方法来获取用户数据和其他 attributes,例如 genderphone_number,甚至在我的前端应用程序中获取 cognito:groups 值.所有这些信息都存在于 JWT 负载中,但不存在于前端。

想法:

  1. API 调用 oauth2-proxy's /auth2/userinfo endpoint that returns users' 电子邮件。不多吧?
  2. 我发现 Cognito 的 oauth2/userInfo 应该 return 更多,但我不喜欢用 aws-sdk 锁定我的前端或有任何在 FE 端处理 JWT。
  3. 构建后端服务,return利用 outputPayloadToHeader Istio's RequestAuthentication feature, like whoami 在自定义 header 中输出 JWT 的负载。但是等等,还有一个微服务?

None 这些对我来说似乎是正确的。

我应该采用更好的方法吗?例如,将 oauth2-proxy 的 /auth2/userinfo 端点扩展到 return 而不仅仅是 email

如有任何帮助,我将不胜感激
谢谢!

看起来您正在使用 Backend for Frontend 方法,OAuth 代理执行 BFF 角色。前端应该能够从 ID 令牌中请求用户信息或信息,如 this Curity example.

但是,似乎 long outstanding issue 您需要解决此实施问题。

感觉最干净的解决方法应该在现有 API 端点(例如 GET /userclaims)中完成。 API 接收访问令牌,因此可以将它们发送到 Cognito 用户信息端点,然后 return 将结果发送给客户端。这避免了在客户端或 AWS 库中使用 JWT 的需要。

这是 return 编辑到 UI 的用户信息中的一些 API code of mine that calls Cognito's userinfo endpoint. This can also be a mechanism for including domain specific claims