问题标签 [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 投票
1 回答
450 浏览

keycloak - 如何在keycloak中的单个资源上添加多个所有者

我正在使用 keycloak UMA。在 keycloak 的帮助下,我可以创建keycloak Authorization option包含一些基本细节的资源name, type, URI, scope, etc,我们还可以选择所有者resource ownerwith UI we are not able to change

但我对资源所有者有一些疑问:

  • 有没有办法向资源添加多个所有者(如果使用 API)。如果是,那怎么办?
  • 如果是,那么多个所有者可以使用username or email address

我也尝试过使用以下 CURL,但我无法添加多个所有者名称。

0 投票
1 回答
3811 浏览

oauth - 如何通过 API 在 keycloak 中忘记密码

我们正在创建一个应用程序,该应用程序具有分别重置密码的功能,因为我们正在使用 keycloak,以便通过 keycloak 页面本身显示内容,但我们的客户需要在应用程序中提供忘记密码,所以我需要点击忘记密码的 api 如下流程。

应用忘记密码页面 > 仅填写电子邮件并继续 > 用户接收重置密码链接 > 打开链接 > Keycloak 重置密码页面

但似乎keycloak中不存在api。

到目前为止,我只在 apis 下面找到

  • PUT /{realm}/users/{id}/reset-password (需要承载,不可能,因为我们无法使用领域帐户用户)
  • PUT /{realm}/users/{id}/execute-actions-email (不知道如何使用,需要承载,因为我们无法使用领域帐户用户,所以不可能)

有什么建议吗?先感谢您


您好,现在是 2021 年,我此时的解决方案是在 java 服务中使用 keycloak 库,因此该服务作为我的 Web 应用程序与 keycloak 之间的聚合器工作,而我们仍然使用上面提到的需要域访问的 api。祝你好运。

0 投票
0 回答
1840 浏览

keycloak - Keycloak - 请求用户通过 api 验证电子邮件地址

期望的结果

用户应该能够注册,然后他应该能够通过移动应用程序登录(如果电子邮件地址未验证),应用程序会显示电子邮件未验证的警告,并且某些应用程序功能已禁用

我有什么

  1. 具有用户注册和登录功能的原生移动应用
  2. 应用程序使用的 api 服务器
  3. 密钥锁实例

注册功能api 服务器完成,它是一个 keycloak 机密客户端,可以创建用户 登录移动应用程序/token直接通过对返回访问令牌的 keycloak 端点的后调用完成

一切都好,现在我有一个可以由我的 api 服务器使用的令牌,我知道它是一个注册用户,其电子邮件地址未经确认

问题是用户没有收到任何欢迎/确认电子邮件,但是:如果用户转到 keycloak 登录网页并尝试使用新创建的用户登录,那么他会收到来自 Keycloak 的电子邮件,但对于通过 api 登录的电子邮件没有电子邮件。有什么办法可以解决这个问题吗?难道我做错了什么?

请求用户验证电子邮件的唯一方法是请求“验证电子邮件”操作,但如果我这样做,那么用户将无法再使用未经验证的电子邮件登录

POST使用to/auth/realms/realm/protocol/openid-connect/token{grant_type: 'password', password: 'string', username: 'string'}body完成登录

呼叫PUT /{realm}/users/{id}/send-verify-email的行为似乎与请求Verify Email相同/execute-actions-email

0 投票
1 回答
1039 浏览

java - Keycloak:无法获取角色的属性

我已经为角色设置了一个属性。转到角色->编辑角色->转到选项卡属性,然后添加一个键和一个值。然后使用下面的代码我尝试检索属性。我设法检索所有角色(role.getName() 有一个值),但属性为空。我是不是忘了给keycloak设置一些东西?

0 投票
1 回答
761 浏览

java - Keycloak 通过 API 和 409 错误向用户添加属性

我正在尝试向 Keycloak:10.0.1 的现有用户添加属性。

我收到错误 HTTP-409:

0 投票
0 回答
1042 浏览

oauth-2.0 - 生成令牌时忽略无效范围

我们正在将我们的 keycloak 设置从 6.0.1 升级到 11.0.0 并且似乎从 Keycloak 10 开始,如果范围参数无效,令牌生成会抱怨错误“无效范围”。

最初,我们使用带有 RBAC(分配给他们的用户和角色)和全范围客户端(仅启用直接访问授权 = true)的 Keycloak 3,这在我们在范围内传递所需角色并用于获取请求的访问令牌时工作正常角色(在范围内),后来我们将其更新为 Keycloak 6,它曾经在此设置下也可以正常工作,但是将其更新为 Keycloak 11 会破坏它,因为我们不使用细粒度范围,因此将现有角色传递给范围有点破坏它,但是,如果我不提供任何范围,那么它可以正常工作。

我的设置如下所示

角色:

  • 角色1
  • 角色2
  • 角色3

用户:

  • 用户 1
  • 用户 2

用户角色映射

  • 角色 1、角色 2 --> 用户 1
  • ROle3 --> 用户 2

客户

  • Client1 AccessType: Cofidential Direct Access Grants: Enabled Scoped: Full Scoped

生成的令牌

0 投票
2 回答
614 浏览

node.js - 如何在 NodeJS 中自定义 keycloak 错误消息

我是节点上的新手,我有一个带 express 的 rest api,一些端点使用 keycloak-connect 具有 keycloak 安全性。发生错误 403 时,我需要自定义响应,即 json 格式的自定义消息。我使用处理程序来管理其他一些状态,例如 200、201、204、404、500,但是当 keycloak 抛出 403 时我无法工作。

0 投票
2 回答
334 浏览

keycloak - 如何使用 java keycloak 管理库在 keycloak 中处理多个操作之间的事务

我想在 keycloak 中实现交易功能。我正在创建一个用户,然后是一个角色并将该角色与用户相关联。我希望在一个事务中完成所有这些操作。这是我的代码片段:

0 投票
1 回答
125 浏览

spring-security - 使用 keycloak rest admin API (Oauth2) 修改用户姓氏后 jhipster 重新加载 OIDC 令牌

我让 Jhipster 使用 Oauth2 + Keycloak 运行。

我有一个用例,我需要从 Jhipster React UI 更新用户的姓氏和名字,所以我通过服务帐户使用 Keycloak 管理客户端来更新 Keycloak 中的用户属性。

问题是需要将信息重新提取到 OIDC 令牌才能让用户立即看到更改。(类似的问题:https ://github.com/jhipster/generator-jhipster/issues/7398 )

是否有任何建议如何设置 Spring Security 以便能够使用 Keycloak 的最新信息或任何明确的调用来重新获取/刷新我的令牌?

感谢您的回答!

0 投票
1 回答
2413 浏览

jwt - 调用rest api时keycloak注销不会使令牌无效

我有一个使用 Keycloak 作为身份验证服务的 React 应用程序。此外,我还有一个 Nodejs rest api,其端点由 keycloak 保护,因此 React 应用程序在需要调用 api 时发送 JWT。在 Keycloak 管理控制台中,我创建了 1 个具有用户和角色的公共客户端。

一切正常,但唯一的问题是当我通过管理控制台或在到期时间之前从我的 React 应用程序注销时,我仍然可以使用这些令牌调用我的应用程序。

为什么我的后端应用程序不使用服务器验证令牌?

我的节点应用程序使用 keycloak-node-connect 适配器,而我的 keycloak.json 是: