0

我们希望通过提供他们当前的 Keycloak JWT 作为一次性身份验证过程,让用户对 Slack 应用程序进行身份验证。这将允许我们将他们的 Slack 用户 ID 与他们的 Keycloak 用户 ID 相关联。

但是,我在 Keycloak 中找不到任何像 AWS 的 GetCallerIdentity 这样的端点。我已经梳理了文档,我能找到的最接近的是此处提到的身份令牌。但是,我找不到有关如何解开该身份令牌以安全地获取有关其所有者的信息的任何信息。

谁能指出我正确的方向?

谢谢!

4

1 回答 1

1

Open ID Connect 定义了 userinfo 端点,类似于 AWS GetCallerIdentity 端点。但这需要触发请求。我更愿意从令牌中读取用户详细信息。

标准 JWT (OIDC) 库支持令牌解码。访问/ID 令牌有 3 个部分:标头、有效负载、签名。您可以在有效负载部分使用 base64 解码,您将获得包含用户详细信息的 json。当然,正确的实现还将读取标头以获取使用的算法,并将使用使用的 IdP 公钥和算法验证令牌签名。否则有人可以篡改令牌。

https://jwt.io/#debugger-io提供了很好的可视化界面,这将帮助您理解和解码令牌结构:

在此处输入图像描述

请记住:userinfo 响应中返回的内容取决于 Keycloak 中的 OIDC 客户端配置

于 2020-10-14T07:20:51.573 回答