首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Keycloak Admin Java API向用户添加角色

Keycloak是一个开源的身份和访问管理解决方案,它提供了一套API用于管理用户、角色和权限等。使用Keycloak Admin Java API向用户添加角色可以通过以下步骤完成:

  1. 首先,你需要在Java项目中添加Keycloak Admin Client的依赖。可以在Maven或Gradle配置文件中添加以下依赖:
代码语言:txt
复制
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    <version>版本号</version>
</dependency>
  1. 在代码中创建Keycloak Admin Client实例,并进行身份验证。你需要提供Keycloak服务器的URL、管理员用户名和密码:
代码语言:txt
复制
Keycloak keycloak = KeycloakBuilder.builder()
                .serverUrl("Keycloak服务器URL")
                .realm("管理员所在的Realm")
                .username("管理员用户名")
                .password("管理员密码")
                .clientId("admin-cli")
                .build();
  1. 通过Keycloak Admin Client实例,你可以使用Keycloak的API来管理用户和角色。以下是向用户添加角色的示例代码:
代码语言:txt
复制
// 获取指定Realm下的用户
UsersResource usersResource = keycloak.realm("Realm名称").users();
UserRepresentation user = usersResource.search("用户名称").get(0);

// 获取指定Realm下的角色
RolesResource rolesResource = keycloak.realm("Realm名称").roles();
RoleRepresentation role = rolesResource.get("角色名称").toRepresentation();

// 向用户添加角色
usersResource.get(user.getId()).roles().realmLevel().add(Arrays.asList(role));

在上述代码中,你需要替换以下内容:

  • "Keycloak服务器URL":Keycloak服务器的URL地址。
  • "管理员所在的Realm":管理员所在的Realm名称。
  • "管理员用户名":用于身份验证的管理员用户名。
  • "管理员密码":用于身份验证的管理员密码。
  • "Realm名称":要操作的Realm名称。
  • "用户名称":要添加角色的用户名称。
  • "角色名称":要添加的角色名称。
  1. 最后,你可以根据需要进行其他操作,例如更新用户信息、删除角色等。完成所有操作后,记得关闭Keycloak Admin Client实例:
代码语言:txt
复制
keycloak.close();

这样,你就可以使用Keycloak Admin Java API向用户添加角色了。

Keycloak相关产品和产品介绍链接地址:

  • Keycloak官方网站:https://www.keycloak.org/
  • Keycloak文档:https://www.keycloak.org/documentation
  • Keycloak GitHub仓库:https://github.com/keycloak/keycloak
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通过管理API管理OAuth2 认证授权服务器Keycloak

Keycloak Admin Client正是对Keycloak Admin REST APIJava HTTP客户端封装。...根据Token中携带的权限信息来获取对应API的访问权限。所以我们在使用Keycloak Admin Client时要特别注意当前你使用的客户端是否有权限访问。...使用Admin账户创建新用户 Master Realm中的Admin管理员拥有管理Keycloak的最高权限,使用它几乎可以在Keycloak中“为所欲为”。...官方给了一个Admin API的说明文档,地址为: https://www.keycloak.org/docs-api/15.0/rest-api/index.html 这是使用Keycloak Admin...今天介绍了如何调用Keycloak Admin REST API,它可以实现在代码中对Keycloak进行一些管理操作。需要注意的是,这些操作和当前操作主体的角色息息相关。

2.8K60

使用keycloak实现k8s用户权限的统一管理

keycloak 介绍 keycloak 现代应用程序和服务的开源身份和访问管理 以最小的麻烦为应用程序和安全服务添加身份验证。无需处理存储用户或认证用户。开箱即用。...=admin quay.io/keycloak/keycloak:11.0.0 如果不开启PROXY_ADDRESS_FORWARDING,需要给keycloak配置证书,对于官方的docker镜像,需要将名为...tls.crt和tls.key的文件挂载到/etc/x509/https,同时给api-server添加 --oidc-ca-file=path/ca.pem 配置nginx代理keycloak...角色赋予admin group kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: admin-group...group "apps" in the namespace "default" 可以看到我们已经可以通过keycloak实现k8s用户的统一认证及角色划分。

3.6K20

吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!

服务: docker run -p 8080:8080 --name keycloak \ -e KEYCLOAK_USER=admin \ -e KEYCLOAK_PASSWORD=admin \ -...控制台使用 接下来我们来体验下Keycloak的管理控制台,看看这个可视化安全框架有什么神奇的地方。 首先输入我们的账号密码admin:admin进行登录; ?...修改完成后保存并刷新页面,Keycloak控制台就变成中文界面了; ? Keycloak非常良心的给很多属性都添加了解释,而且还是中文的,基本看下解释就可以知道如何使用了; ?...(A)客户端将用户导向认证服务器; (B)用户在认证服务器进行登录并授权; (C)认证服务器返回授权码给客户端; (D)客户端通过授权码和跳转地址认证服务器获取访问令牌; (E)认证服务器发放访问令牌...密码模式体验 首先需要在Keycloak中创建客户端mall-tiny-keycloak; ? 然后创建一个角色mall-tiny; ? 然后将角色分配给macro用户; ?

2.5K21

Spring Security 中使用Keycloak作为认证授权服务器

Keycloak对流行的Java应用提供了适配器。在系列文章的上一篇我们演示了针对Spring Boot的安全保护,用的就是适配器的一种。...Keycloak同样提供Spring Security的适配器,后续的几篇文章我们就来共同学习Spring Security适配器的使用。 ❝ Keycloak的安装可参考前面的系列教程。...Keycloak支持的每个Java适配器都可以通过一个简单的JSON文件进行配置,我们缺失的就是这个文件。...Spring Security会为每个角色添加ROLE_前缀,这需要我们声明GrantedAuthoritiesMapper的实现SimpleAuthorityMapper来完成这一功能。...总结 Keycloak整合Spring Security的要点这里需要再梳理一下。在原生情况下,客户端的配置、用户的信息、角色信息都由Keycloak负责;客户端只负责角色和资源的映射关系。

2.1K20

基于Keycloak的Grafana SSO身份认证过程剖析

,节省了keycloak用户角色配置 role_attribute_path ='True'&&'Admin' 3....Grafana SSO登录过程分析 按照上述的步骤,你的grafana配置好后,已经能够使用keycloak进行登录了(需要在Keycloak创建用户): 当然你需要在Keycloak的Test域下创建一个用户...Keycloak的认证登录界面,用户Keycloak登录成功后,keycloak会生成一个针对该用户的code(这个code只能使用一次,用于换取token),并返回给浏览器,并指定下一跳的url....(第三方软件内部用)api_url:第三方软件内部使用api_url,以及上一步的access_token与keycloak通信,获取这个用户的详细信息后,内部注册用户并存储session,最后将浏览器重定向到第三方软件首页...通信,用code换回accesstoken #有了accesstoken后,遂keycloak,发起api_url的请求,获取用户身份 #此时存入自己管理的用户session #然后返回 #response

6.7K111

Vue+Golang接入KeyCloakVue+Golang接入KeyCloakVue+Golang接入KeyCloak

使用前端传过来的Authorization进行鉴权。 区分普通用户和管理员两种角色KeyCloak搭建、配置 最方便的搭建方式当然就是用Docker了。...docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:15.0.2...普通用户角色:demo_user_role 管理用角色:demo_admin_role 创建用户,本文不涉及用户注册的操作, 就直接在后台创建两个用户再分别分配上角色就好了。...安装导入vue-keycloak-js Golang接入 golang接入keycloak,这里使用gocloak库。我使用的是v8版本,目前已经有v9了。...路由鉴权 为api接口增加鉴权,获取Authorization Header中的AccessToken,并发送给Keycloak,获取用户的基本信息,主要是Sub(即用户id)。

1.8K30

aspnetcore 应用 接入Keycloak快速上手指南

登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种场景而生...这里先只介绍4个最常用的核心概念: Users: 用户使用并需要登录系统的对象 Roles: 角色,用来对用户的权限进行管理 Clients: 客户端,需要接入Keycloak并被Keycloak...bearer-only:适用于服务端应用,不需要浏览器登录,只允许使用bearer token请求的场景。典型的使用场景就是restful api。...创建用户角色 创建角色 创建2个角色admin、user ? 还可以创建全局的角色 ? 创建用户 创建1个用户:geffzhang ?...绑定用户角色 给geffzhang 用户分配角色admin和user ?

2.3K30

开源认证授权管理平台Keycloak初体验

docker run -d -p 8011:8080 --name keycloak-server -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin...jboss/keycloak 执行上述命令安装Keycloak,成功后打开http://localhost:8011/auth/admin输入账号admin和密码admin,就进入了管理控制台。...接下来在我上面的自定义域felord.cn中新建一个用户,步骤为: 菜单栏找到管理->用户,然后打开添加用户。 键入唯一的必填项用户名(username)。...Keycloak的核心概念 接下来是我们在使用Keycloak时需要掌握的一些概念,上面已经提到了realm和user,这里就不再赘述了 authentication 识别和验证用户的过程。...roles 角色是RBAC的重要概念,用于表明用户的身份类型。 user role mapping 用户角色映射关系。通常一个用户可能有多个角色,一个角色也可以对应不同的人。

4.6K30

使用 KeyCloak 对 Kubernetes 进行统一用户管理

那么第一步,我们需要扩展 KeyCloak 中的 Claim,如下图: 我们在 Client 中添加了一项 “User Attribute”,并将其加入到 ID Token 中;Multivalued...,我们需要通过 Client Application 来访问 API Server,kubectl 显然是首选 Client,让 kubectl 以我们创建的用户 "admin" 的身份来访问 Kubernetes...RBAC 对 group 为 manager 的用户,我们对其赋予系统自带的 "cluster-admin" 角色,即为 cluster 的管理员权限: kind: ClusterRoleBinding...manager apiGroup: rbac.authorization.k8s.io 我们在 keyCloak 中将 admin 用户 “加入” 到 “manager” 组中: 然后用该用户访问...总结 本文仅仅通过 KeyCloak 和 kubectl 大家介绍了 K8s 中如何进行用户管理,相应地,如果自己的用户中心实现 OIDC 协议,并且客户端通过 ID Token 以 "bearer

2.7K20

在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证

7.API Server 确认用户是否有操作资源的权限。 8.鉴权成功之后,API 服务器 kubectl 返回响应。 9.kubectl 向用户返回结果。...角色(roles):角色是 RBAC 的重要概念,用于表明用户的身份类型。 证书(credential):Keycloak 用于验证用户的凭证,例如密码、一次性密码、证书、指纹等等。...DB_USER: keycloak DB_PASSWORD: keycloak KEYCLOAK_USER: admin # 用户名...docker-compose ps 浏览器输入 https://:8443,访问 Keycloak 界面,用户名:admin,密码:czw123456。...6.3 创建 Client Client (客户端)是请求 Keycloak用户进行身份验证的客户端,在本示例场景中,API Server 相当于一个客户端,负责 Keycloak 发起身份认证请求

6K20

OAuth2 服务器Keycloak中的Realm

而且你会发现Master Realm中创建的用户可以赋予其独有的两种角色admin 超级管理员,拥有管理Keycloak服务器上任何realm的完全访问权限。...使用Master用户管理 我们在Master Realm中建立一个用户,并在其角色映射中剥夺admin和create-realm角色,同时在Client Roles中选中felord.cn-realm...把该客户端的所有角色都赋予建立的用户。...你可以通过下面的格式的链接进行控制台管理操作: http:///auth/admin/master/console/#/realms/{realm-name} 使用领域客户端用户管理...扩展 Keycloak Admin Client是通过API操作管理Realm的一个客户端工具,我在上一篇已经介绍过了。结合本篇的一些概念可能你会更加深刻的理解如果操作管理Realm。

1.7K60

使用批处理命令win server AD域中批量添加用户实现

因为要用个批处理命令在Windows Server里面批量添加用户,所以需要使用批处理命令。 我这篇是纯新手教程,在百度上搜了一些批处理命令感觉属于进阶教程,研究了两天才完成我要完成的目标。...-pwd %3 -display %4 -dept %5 -company %6 -office %7 -tel %8 -disabled no 下面对这条语句进行分析: dsadd user :域中添加用户...因为需要传入参数,所以不能直接点击bat文件使用。...成功添加用户。 我为何要这么做因为另一个人在网站上来添加用户,每次调用我的bat传入参数就可以添加用户,他不需要去AD域中一个个添加很方便。...用这种方式只需要在excel文件中输入你要添加用户,然后执行bat文件一次性就可以批量添加用户了。 以上两种方式均可以批量添加用户适用于不同的情况。

1.9K10

开源身份认证神器:KeyCloak

那么我们不妨填写一下,为了测试方便,我们将账号/密码分别设为admin/admin ,然后点击create按钮,将会跳转到如下界面: 由图可知,管理员账户已创建成功,Keycloak初始化也已完成。...,test-role 角色用户不允许访问。...创建用户并分配角色 创建用户 分配角色 如图,点击user-role,并点击Add selected,即可为user1用户分配user-role角色;同理,为user2用户分配test-role角色...登录相关配置 前文中,我们是自己添加用户的,现实中,用户往往是注册的;另外,如果我想实现Remember Me 的功能该怎么办呢?难道这一切都需要自己编码吗?显然不需要!...X CAN DO Y ON RESOURCE Z where … X表示一个或多个用户角色或group,或者它们的组合。也可在这里使用声明和上下文。 Y表示要执行的动作,例如写入、查看等。

5.2K20

一个接口是如何在Keycloak和Spring Security之间执行的

hasRole("base_user") .anyRequest().permitAll(); } 这是典型的Spring Security配置,拥有base_user角色用户有权限访问...这里需要大家明白的是所谓的用户和base_user角色目前都由Keycloak平台管理,而我们的应用目前只能控制资源的访问策略。...当请求被过滤器FilterSecurityInterceptor时发现当前的用户是个匿名用户,不符合/admin/foo的访问控制要求而抛出了AccessDeniedException。...认证授权的API。...Keycloak的流程简单了解一下就好,感觉非常平淡无奇,大部分也没有定制化的需要,个人觉得重心其实不在这里,如何根据业务定制Keycloak用户管理、角色管理等一系列管理API才是使用好它的关键。

1.9K20

开源认证和访问控制的利器keycloak使用简介

简介 keycloak是一个开源的进行身份认证和访问控制的软件。是由Red Hat基金会开发的,我们可以使用keycloak方便的向应用程序和安全服务添加身份认证,非常的方便。...创建admin用户 启动好keycloak之后,我们就可以登录到web页面 http://localhost:8080/auth 创建admin用户了。 ?...这是创建用户的界面,我们输入用户名和密码,点击create,就可以创建admin用户了。...master realm是指我们使用admin用户登录进来的realm空间,这个realm只是用来创建其他realm的。...我们使用之前创建的用户名和密码登录看看。 ? 登录成功。 总结 上面的例子我们演示了如何配置keycloak,并且创建一个realm供第三方程序使用。还举了一个无侵入的例子来和keycloak对接。

5.4K22

深度解读-如何用keycloak管理external auth

简单来说,以google授权为例,一般就是通过用户授权页面登录google账号,再跳转用code换取到相应权限的token,就可以代表用户去发起一些google api的请求。...等效的页面配置可以后边参考之前的链接 How to setup Sign in with Google using Keycloak[6] # 这里使用默认的admin-cli配置keycloak #...这就可以用Retrieving external IDP tokens[9] 底层实现是授权时存储了external token,再配合添加broker read token权限给生成的用户,就可以用keycloak...retrieve idp token (with refresh token) // 存储idp token store_token = true // 用户生成是添加...admin页面没有,但admin api确可以设置,也是很 tricky 代码实现 就是直接换取refresh_token, 请求地址指明对应的idp即可 // src/extensions/keycloak_auth.rs

46230
领券