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

使用Keycloak Rest API将用户添加到客户端角色

要使用Keycloak REST API将用户添加到客户端角色,您需要执行以下步骤:

  1. 获取访问令牌:首先,您需要获取访问令牌,以便在与Keycloak REST API进行交互时进行身份验证。您可以使用以下请求获取访问令牌:
代码语言:javascript
复制
curl -X POST "https://<KEYCLOAK_DOMAIN>/auth/realms/<REALM>/protocol/openid-connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "username=<USERNAME>" \
     -d "password=<PASSWORD>" \
     -d "grant_type=password" \
     -d "client_id=<CLIENT_ID>" \
     -d "client_secret=<CLIENT_SECRET>"

请将<KEYCLOAK_DOMAIN><REALM><USERNAME><PASSWORD><CLIENT_ID><CLIENT_SECRET>替换为您的Keycloak实例的实际值。这将返回一个包含访问令牌的JSON响应。

  1. 获取用户ID:接下来,您需要获取要添加角色的用户的ID。您可以使用以下请求获取用户ID:
代码语言:javascript
复制
curl -X GET "https://<KEYCLOAK_DOMAIN>/auth/realms/<REALM>/users?username=<USERNAME>" \
     -H "Authorization: Bearer <ACCESS_TOKEN>"

请将<KEYCLOAL_DOMAIN><REALM><USERNAME><ACCESS_TOKEN>替换为您的Keycloak实例的实际值和之前获取的访问令牌。这将返回一个包含用户信息的JSON响应,从中您可以提取用户ID。

  1. 获取客户端角色ID:您还需要获取要分配给用户的客户端角色的ID。您可以使用以下请求获取客户端角色ID:
代码语言:javascript
复制
curl -X GET "https://<KEYCLOAK_DOMAIN>/auth/realms/<REALM>/clients/<CLIENT_ID>/roles/<ROLE_NAME>" \
     -H "Authorization: Bearer <ACCESS_TOKEN>"

请将<KEYCLOAK_DOMAIN><REALM><CLIENT_ID><ROLE_NAME><ACCESS_TOKEN>替换为您的Keycloak实例的实际值和之前获取的访问令子。这将返回一个包含角色信息的JSON响应,从中您可以提取角色ID。

  1. 将用户添加到客户端角色:最后,您可以使用以下请求将用户添加到客户端角色:
代码语言:javascript
复制
curl -X POST "https://<KEYCLOAK_DOMAIN>/auth/realms/<REALM>/users/<USER_ID>/role-mappings/clients/<CLIENT_ID>" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer <ACCESS_TOKEN>" \
     -d '[{"id": "<ROLE_ID>", "scope": "ROLE"}]'

请将<KEYCLOAK_DOMAIN><REALM><USER_ID>、<CLIENT_ID><ROLE_ID><ACCESS_TOKEN>`替换为您的Keycloak实例的实际值、之前获取的用户ID、客户端角色ID和访问令牌。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

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

2.8K60

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

3.在使用 kubectl 时, id_token 设置为 --token 的参数值,或者将其直接添加到 kubeconfig 中。...4.kubectl id_token 添加到 HTTP 请求的 Authorization 头部中,发送给 API Server。...组(groups):一组用户的集合,你可以一系列的角色赋予定义好的用户组,一旦某用户属于该用户组,那么该用户获得对应组的所有角色权限。...4 前提条件 接下来的章节演示如何部署和配置 Keycloak 服务作为 API Server 的认证服务,需要确保完成了以下准备: 部署好一套 Kubernetes 集群,我使用的集群版本是 v1.23.5...6.3 创建 Client Client (客户端)是请求 Keycloak用户进行身份验证的客户端,在本示例场景中,API Server 相当于一个客户端,负责向 Keycloak 发起身份认证请求

6.4K20
  • 使用 Kotlin 和Spring Boot 2.0快速开发REST API客户端

    在上一篇文章使用 Kotlin 和Spring Boot 2.0快速开发REST API接口内介绍了如何使用简单代码快速实现REST API的服务端接口,此文简单介绍如何在以上基础上快速实现一个简单的客户端应用...工程目录初始化,参考使用 Kotlin 和Spring Boot 2.0快速开发REST API接口 2....客户端主体代码 以下是使用Kotlin及Spring Boot2.0实现的访问REST API客户端代码,结构清晰简单 bean{ WebClient.builder()...bodyToFlux(Book::class.java)部分需要依赖我们从服务端复制过来的Book实体类,Book类的实体定义和服务端的Book类定义保持一致即可,类路径无需完全一致,bodyToFlux()方法会自动JSON...运行客户端程序 启动该客户端程序,获取服务端数据,打印结果参考下图: ? 源码下载地址:https://gitee.com/chenbichao/kotlin-app-client

    3.2K20

    只需使用VS Code的REST客户端插件即可进行API调用

    在过去,为了在连接 UI 以接受数据之前测试 REST API,通常必须通过终端的命令行查询 API,或者使用像 Insomnia 或 Postman 这样的 GUI(我在之前的博客中对它们进行了比较)...使用 REST Client 是非常简单的,我向您展示这个插件是多么简单,而且功能齐全。...测试一下:基本操作 这是很酷的部分:在我的经验中,这个小小的 REST Client 插件能够做的事情和 Postman 等更复杂的 API 客户端一样多。...下面,我向你展示如何进行每一种类型的基本 CRUD 操作,再加上如何像 JWT 令牌一样进行需要认证的 API 调用,使用我在本地运行的 MERN 用户注册应用来指向调用。...POST 示例 我介绍的第一个示例是 REST Client 的 POST,因为用户在我的应用程序中必须先注册才能进行其他任何操作(毕竟,这只是一个登录服务)。

    8.3K20

    Spring Boot+Keycloak从零到壹

    概览 在本文中,我们介绍安装、配置Keycloak服务器的基础知识,如何Spring Boot应用程序**和Keycloak服务器连接起来,以及在Spring Security下如何使用它。...创建一个客户端 现在我们导航到Clients页面。正如我们在下图中所看到的,Keycloak已经整合了已经内置的客户端: 我们需要在应用程序中添加一个客户端,所以我们点击“Create”。...创建一个角色用户 Keycloak使用Role-Based Access。因此,每个用户都必须有一个角色。...我们需要导航到“Role”页面: 然后,我们添加 “user”角色: 现在我们已经有了一个可以分配给用户角色,但是还没有一个用户。...Keycloak Spring Boot 适配器是基于 Spring Boot的自动配置,因此我们所需要做的就是Keycloak Spring Boot starter添加到我们的项目中。

    4K20

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

    本文简明的介绍Keycloak的安装、使用,并给出aspnetcore 应用如何快速接入Keycloak的示例。...这里先只介绍4个最常用的核心概念: Users: 用户使用并需要登录系统的对象 Roles: 角色,用来对用户的权限进行管理 Clients: 客户端,需要接入Keycloak并被Keycloak...创建Realm 创建一个新的realm: demo,后续所有的客户端用户角色等都在此realm中创建 ? ? ?...bearer-only:适用于服务端应用,不需要浏览器登录,只允许使用bearer token请求的场景。典型的使用场景就是restful api。...创建用户角色 创建角色 创建2个角色:admin、user ? 还可以创建全局的角色 ? 创建用户 创建1个用户:geffzhang ?

    2.4K30

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

    安装 使用Docker搭建Keycloak服务非常简单,两个命令就完事了,我们采用此种方式。...(A)客户端用户导向认证服务器; (B)用户在认证服务器进行登录并授权; (C)认证服务器返回授权码给客户端; (D)客户端通过授权码和跳转地址向认证服务器获取访问令牌; (E)认证服务器发放访问令牌...(A)客户端用户获取用户名和密码; (B)客户端通过用户用户名和密码访问认证服务器; (C)认证服务器返回访问令牌(有需要带上刷新令牌)。...密码模式体验 首先需要在Keycloak中创建客户端mall-tiny-keycloak; ? 然后创建一个角色mall-tiny; ? 然后角色分配给macro用户; ?...由于我们的SpringBoot应用运行在localhost:8088上面,我们需要对Keycloak客户端的有效的重定向URI进行配置; ?

    2.5K21

    Keycloak Spring Security适配器的常用配置

    realm-public-key PEM格式的realm公钥,不建议客户端配置。每次Keycloak Adapter会自动拉取它。...ssl-required Keycloak 服务器的通信使用HTTPS的范围,是可选的,有三个选项: external,默认值,表示外部的请求都必须使用HTTPS。...all,顾名思义,所有的都使用HTTPS。 none, 禁用HTTPS。 confidential-port Keycloak服务器的安全端口,默认 8443。...use-resource-role-mappings 如果设置为true, Keycloak Adapter检查令牌携带的用户角色是否跟资源一致;否则会去查询realm中用户角色。...autodetect-bearer-only 如果你的应用不仅仅是Web应用而且还提供API服务(现在通常是Restful Service),开启了这一配置后Keycloak服务器会通过请求标头相对“智能

    2.5K51

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

    Keycloak同样提供Spring Security的适配器,后续的几篇文章我们就来共同学习Spring Security适配器的使用。 ❝ Keycloak的安装可参考前面的系列教程。.../(.*)$" : "/api/$1"    } } 上面包含的客户端配置属性都可以在Keycloak控制台进行配置,见下图: 配置Keycloak客户端属性 也就是说我们需要的json文件和图中的配置项是对应的...比较人性化的是我们不需要自行编写这个json文件,Keycloak提供了下载客户端配置的方法,这里我只使用了必要的配置项: 你可以下载客户端json配置 引入客户端配置 虽然顺利拿到json文件,但是加载这个...# 客户端名称   resource: springboot-client # 声明这是一个公开的客户端,否则不能在keycloak外部环境使用,会403   public-client: true...总结 Keycloak整合Spring Security的要点这里需要再梳理一下。在原生情况下,客户端的配置、用户的信息、角色信息都由Keycloak负责;客户端只负责角色和资源的映射关系。

    2.2K20

    Keycloak简单几步实现对Spring Boot应用的权限控制

    下图不仅仅清晰地说明了keycloak中Masterrealm和自定义realm的关系,还说明了在一个realm中用户客户端的关系。 ?...填写重定向URL 为了测试,这里我只填写了设置选项卡中唯一的必填项有效的重定向URI,这个选项的意思就是客户端springboot-client的所有API都会受到权限管控。...角色 基于角色的权限控制是目前主流的权限控制思想,keycloak也采取了这种方式。我们需要建立一个角色并授予上一篇文章中建立的用户felord。我们来创建一个简单的角色: ?...角色映射给用户 然后我们把上面创建的角色base_user赋予用户felord: ? 给realm中的用户赋予角色 到这里用户角色角色映射都搞定了,就剩下在客户端上定义资源了。...:8011/auth # 客户端名称 resource: springboot-client # 声明这是一个公开的客户端,否则不能在keycloak外部环境使用,会403 public-client

    2.1K50

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

    结合我们项目内的过往使用经验,本篇文章,介绍: 1、一键式Keycloak安装; 2、配置Grafana,使接入Keycloak进行单点登录; 3、分析Grafana SSO登录过程...,节省了keycloak用户角色配置 role_attribute_path ='True'&&'Admin' 3....Keycloak的认证登录界面,用户Keycloak登录成功后,keycloak会生成一个针对该用户的code(这个code只能使用一次,用于换取token),并返回给浏览器,并指定下一跳的url....(第三方软件内部用)api_url:第三方软件内部使用api_url,以及上一步的access_token与keycloak通信,获取这个用户的详细信息后,内部注册用户并存储session,最后浏览器重定向到第三方软件首页...header里,设置浏览器的grafana cookie,说明grafana已经keycloak的code验证登录后,生成了该客户端的grafana_session Set-Cookie: oauth_state

    7K111

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

    点击凭据(Credentials)选项卡为新用户设置临时密码。此密码是临时的,用户需要在第一次登录时更改它。如果您更喜欢创建永久密码,请将临时开关切换到关闭并单击设置密码。...Keycloak的核心概念 接下来是我们在使用Keycloak时需要掌握的一些概念,上面已经提到了realm和user,这里就不再赘述了 authentication 识别和验证用户的过程。...roles 角色是RBAC的重要概念,用于表明用户的身份类型。 user role mapping 用户角色映射关系。通常一个用户可能有多个角色,一个角色也可以对应不同的人。...groups 用户组,你可以一系列的角色赋予定义好的用户组,一旦某用户属于该用户组,那么该用户获得对应组的所有角色权限。 clients 客户端。...通常指一些需要向Keycloack请求以认证一个用户的应用或者服务,甚至可以说寻求Keycloack保护并在Keycloack上注册的请求实体都是客户端

    4.7K30

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

    接入预期 本次实践达到以下几个目的: 前端Vue接入KeyCloak,必须登录后才进行渲染。 后端Golang Beego框架接入Keycloak。...使用前端传过来的Authorization进行鉴权。 区分普通用户和管理员两种角色KeyCloak搭建、配置 最方便的搭建方式当然就是用Docker了。...普通用户角色:demo_user_role 管理用角色:demo_admin_role 创建用户,本文不涉及用户注册的操作, 就直接在后台创建两个用户再分别分配上角色就好了。...安装导入vue-keycloak-js Golang接入 golang接入keycloak,这里使用gocloak库。我使用的是v8版本,目前已经有v9了。...路由鉴权 为api接口增加鉴权,获取Authorization Header中的AccessToken,并发送给Keycloak,获取用户的基本信息,主要是Sub(即用户id)。

    1.8K30

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

    KeyCloak 中的配置 要想实现用户管理,我们需要利用 K8s 中 group 的概念,来对一组用户分配权限,这需要利用 OIDC 协议中的 Claim 概念,来实现 K8s 中用户的分组。...Claim 是 ID Token 中携带的信息,指的是客户端请求的信息范围,如用户名、邮箱等,而这些可以进行扩展用来携带一些用户所属 group 的信息等等。.../micahhausler/k8s-oidc-helper 用户管理 在一切都配置成功后,我们再来看给用户分配权限。...RBAC 对 group 为 manager 的用户,我们对其赋予系统自带的 "cluster-admin" 角色,即为 cluster 的管理员权限: kind: ClusterRoleBinding...总结 本文仅仅通过 KeyCloak 和 kubectl 向大家介绍了 K8s 中如何进行用户管理,相应地,如果自己的用户中心实现 OIDC 协议,并且客户端通过 ID Token 以 "bearer

    2.9K20

    (译)Kubernetes 单点登录详解

    OpenLDAP 客户端 我们最后会使用 KeyCloak 来管理 LDAP 目录,在那之前可以熟悉一下 OpenLDAP 客户端。...首先在 Keycloak 上创建一个 KubernetesAdmin 群组,然后在群组中创建一个新用户。 接下来要更新我们的 Keycloak 客户端,把用户所属群组的信息包含在 JWT 中。...必须在安装完成之后使用 Web UI 或者 API 配置 OIDC。...选择这个选项之后,会被重定向到 Keycloak 进行登录,这里我们应该使用一个常规 Keycloak 用户(Master Realm),不要用 Keycloak 管理用户。...使用 Docker 假设我们创建了叫做 test1 的私有项目,并让我们的 Keycloak Master Realm 账号能够访问这个项目,我们就能够使用 Docker 客户端登录了,例如 docker

    5.9K50

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

    keycloak 介绍 keycloak 现代应用程序和服务的开源身份和访问管理 以最小的麻烦为应用程序和安全服务添加身份验证。无需处理存储用户或认证用户。开箱即用。...tls.crt和tls.key的文件挂载到/etc/x509/https,同时给api-server添加 --oidc-ca-file=path/ca.pem 配置nginx代理keycloak...通过kubelogin实现k8s oidc认证 brew install int128/kubelogin/kubeloginkubelogin 执行上述命令后,kubelogin打开浏览器,输入用户名密码认证成功后显示以下信息...此时查看kubeconfig发现oidc用户的refresh-token及id-token已经被配置 如果不使用kubelogin等工具也可以直接通过curl获取token信息 curl -k 'https...group "apps" in the namespace "default" 可以看到我们已经可以通过keycloak实现k8s用户的统一认证及角色划分。

    3.7K20

    Keycloak vs MaxKey,开源单点登录框架如何选择?

    其宗旨基本一致:浏览器向客户端发起请求,客户端访问用户系统获取 Cookie 或其他认证条件,由用户系统负责登录并将认证后的条件返回给客户端。...其核心是服务端返回 ticket 作为认证条件,由客户端判断条件是否存在,存在则通过验证接口验证用户登录状态,同时返回用户信息,否则进行登录。...同时客户端可以自定义登录流程,通过服务端提供的接口进行认证。总体流程如图^1: 使用方也就是 Apereo CAS,此外有少数的语言也按此协议开发了不同的服务端,不过应用甚少。...相对于 CAS,Keycloak 没有那么多的协议的支持,认证协议支持 OIDC 和 SAML, LDAP 和 Kerberos 作为用户存储协议集成。...,Keycloak和MaxKey除了用户登录和相关协议的实现,更重要的是实现用户生命周期的管理,基于角色用户的访问控制,各有各的优势,具体怎么去选择还需要看具体情况。

    4.8K51
    领券