问题标签 [keycloak-rest-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1666 浏览

keycloak - 如何通过 Keycloak 中的 API 获取请求方令牌 (RPT)?

我正在努力寻找它,但我找不到解决方案。有人帮助我吗?

这是我的尝试。#1 首先找到 PAT (Protection API Token) 在此处输入图像描述

#2 获取权限票列表 在此处输入图像描述

#3 尝试获取 RPT,但出现“票证验证失败”错误。 在此处输入图像描述

#4 这个错误的源代码,但我不熟悉源代码。

它从第 670 行的源文件(AuthorizationTokenService.java)复制。 在此处输入图像描述

https://www.keycloak.org/docs/latest/authorization_services/#_service_overview

0 投票
1 回答
81 浏览

java - 无法在 keycloak 上查看登录页面

我正在研究 React 应用程序与 KeyCloak 的集成。我已经在我的本地机器上安装了 keycloak 服务器版本 11.0.2。我能够访问管理登录名并创建管理员用户。我还使用 keycloak 创建了一个带有凭据的自定义客户端和用户。我的反应应用程序托管在我机器的端口 9000 上,keycloak 托管在 8080(默认)端口上。现在,当我重定向到我的应用程序 URL 时,它会自动重定向到以下 url:

http://localhost:8080/auth/realms/{Custom_realm}/protocol/openid-connect/auth?client_id={Custom_Client}&redirect_uri=http%3A%2F%2Flocalhost%3A9000%2F&state=r8yy83fdgd-27f8-4aa9-a679 -01sfdsgd9&response_mode=fragment&response_type=code&scope=openid&nonce=27fedfgf89-66be-4484-bbcc-aabb4saddc4 网址正在呈现我们很抱歉,不允许我输入用户所需的凭据。

在此处输入图像描述

不知道为什么登录页面没有登陆。谁能帮我解决这个问题??还提供 Keycloak 所需的基本配置级别,以将其与应用程序集成并创建新的领域和客户端。

0 投票
2 回答
3522 浏览

java - 无法使用 Keycloak 验证应用程序用户的登录

我正在研究 React 应用程序与 Keycloak 的集成。我已经在我的本地机器上安装了 Keycloak 服务器版本 11.0.2。我能够访问管理登录名并创建管理员用户。我还使用 Keycloak 创建了具有凭据的自定义客户端和用户。我的反应应用程序托管在我机器的端口 9000 上,而 Keycloak 托管在 8080(默认)端口上。现在,当我重定向到我的应用程序 URL 时,它会自动重定向到以下 URL:

在此处输入图像描述

URL 正在呈现没有 CSS 的登录页面。不知道为什么 CSS 没有被渲染。它也没有进行身份验证并给出错误

无法发布 /realms/{Realm}/login-actions/authenticate

0 投票
1 回答
687 浏览

keycloak - 使用 Keycloak 中的自定义 Admin REST API 获取用户的 ID 令牌

在我现在正在开发的系统中,我想在我的 Keycloak 服务器中使用 Keycloak 的 admin REST API 获取用户的 ID 令牌,而不知道用户的密码(即,仅使用管理员用户的密码)。

也就是说,我想要一个像 GET /{realm}/users/{id}/id-token.

是否有可能实现这一点?

(Keycloak 的文档说可以实现自定义 API 端点(https://www.keycloak.org/docs/latest/server_development/index.html#_extensions_rest),但我不确定是否可以添加我想要的功能。)

0 投票
0 回答
463 浏览

java - 使用邮递员登录 Keycloak 领域

我有 app1,其中有 api 管理部分或菜单。app1 有单独的登录,不使用 keycloak。现在 api 管理选项不过是使用keycloak进行身份验证和授权的 apiman。我不想登录两次才能进入 apiman,所以我正在从 app1 的用户主模块将用户注册到 keycloak(apiman)(我可以这样做并且也可以手动登录)。现在我想自动化这个过程,这样一旦用户登录 app1 并单击 api 管理选项/菜单,它将使用一个 java 微服务对用户进行身份验证/授权,然后直接进入 apiman 仪表板。是否有可能使用 java 程序绕过 keycloak 登录?有没有办法做到这一点?

我尝试过以下事情:

邮政

https://{HOST:PORT}/auth/realms/apiman/protocol/openid-connect/auth?response_type=code&client_id=apimanui&redirect_uri={REDIRECT_URI}?session_state=a2a53973-12ad-4011-b202-b6c7bc538287&state=d5a41eb1-00ce- 4932-b910-241df8db5159&login=true&scope=openid

在此处输入图像描述

0 投票
1 回答
1037 浏览

keycloak - 有没有办法使用 Keycloak API 检索组中的成员数量?

我正在使用 Keycloak API,并且我有一个用例,我需要在获取所有用户之前获取组中的成员数。

不幸的是,这两个端点GET /{realm}/groups/{id}/membersGET /{realm}/groups/{id}没有返回此类信息。

https://www.keycloak.org/docs-api/5.0/rest-api/index.html上的 API 文档似乎没有说明我们如何获得计数。

那么,我们如何使用 Keycloak API 获取这些信息呢?

0 投票
1 回答
163 浏览

keycloak - Keycloak得到空的登录页面,即没有用户名和密码表单

最近我通过将数据卷挂载到不同的环境来迁移 keycloak 数据库。在那之前它工作得很好,突然我得到了空的登录页面(用户名和密码表单没有显示)。在主题中,我评论了“if 循环”,即此文件的第 8 行https://github.com/keycloak/keycloak/blob/master/themes/src/main/resources/theme/base/login/login。 ftl#L8,它正在工作。为什么我需要评论该行?什么是领域。密码是什么意思?任何想法?

在迁移数据时,是否有任何问题?如果是这样,我应该检查 keycloakdb 中的哪个表来解决这个问题。

如果您需要更多信息,请随时问我。

钥匙斗篷登录页面

0 投票
1 回答
243 浏览

keycloak - 在 Keycloak 中,你可以使用 JWT 来获取调用者的身份吗?

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

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

谁能指出我正确的方向?

谢谢!

0 投票
1 回答
965 浏览

keycloak - 如何通过 API 集成 keycloak 短信认证?

我有一个使用自定义 KeycloakProvider 的 keycloak 服务器和 Laravel 应用程序:

现在我的目标是通过用户的手机号码设置基本的短信认证。我找到了一些工具(12),但它们不提供 API,只提供 HTML 页面。有解决办法吗?

0 投票
0 回答
226 浏览

keycloak - 将自定义客户端与服务帐户一起使用时的 Keycloak REST API 401

我们想从我们的后端服务之一访问 Keycloak(第 10 版)REST API。为了进行身份验证,我们设置了以下内容:

  • 我们领域内的新客户
  • 为该客户端启用服务帐户
  • 将“领域管理”的所有 [1] 角色分配给服务帐户

访问 API,例如获取选定的用户总是会导致 401 响应。

提出请求的步骤如下:

  1. 使用+ Client ID + Client Secret从https://my-keycloak.com/auth/realms/my-realm/protocol/openid-connect/token检索 access_tokengrant_type=client_credentials
  2. 使用步骤 1 中的令牌从https://my-keycloak.com/auth/realms/my-realm/users/some-user-id-4711获取用户。Authorization: Bearer $ACCESS_TOKEN

我的问题:甚至可以使用自定义客户端还是我们必须坚持通过 admin-cli 登录?我们需要如何配置自定义客户端,以授予对 REST API 的访问权限。

谢谢,马丁

[1] 只是为了测试而设置所有角色,而不是我们最终只想读取数据。