首页
学习
活动
专区
圈层
工具
发布

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

准备工作 首先我们需要有一个 Identity Provider 来统一管理 K8s 中的用户,并且提供 OIDC 协议服务,本文采用了 KeyCloak 作为 Identity Provider。...KeyCloak 中的配置 要想实现用户管理,我们需要利用 K8s 中 group 的概念,来对一组用户分配权限,这需要利用 OIDC 协议中的 Claim 概念,来实现 K8s 中用户的分组。...必须设置为 ON,保证 "groups" Claim 的值为一个 String 数组,其中每个值代表 User 所属的一个分组,一个 User 可以同时属于多个分组,每个值之间使用逗号分隔。...第二步就是为用户设置 "groups" 属性: 一切都设置好之后,可以在 “admin” 这个用户的 ID Token 中看到其 “groups” 属性: { "jti":"9259af9c-8a3d...总结 本文仅仅通过 KeyCloak 和 kubectl 向大家介绍了 K8s 中如何进行用户管理,相应地,如果自己的用户中心实现 OIDC 协议,并且客户端通过 ID Token 以 "bearer

3.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    keycloak 介绍 keycloak 现代应用程序和服务的开源身份和访问管理 以最小的麻烦为应用程序和安全服务添加身份验证。无需处理存储用户或认证用户。开箱即用。...以docker方式运行keycloak 和k8s交互要求必须启用https,我们使用docker启动没有配置证书,需要启动PROXY_ADDRESS_FORWARDING,然后通过NGINX配置证书,从而与...tls.crt和tls.key的文件挂载到/etc/x509/https,同时给api-server添加 --oidc-ca-file=path/ca.pem 配置nginx代理keycloak...etcd: local: dataDir: /var/lib/etcd imageRepository: registry.aliyuncs.com/google_containers # 设置使用阿里云镜像...此时查看kubeconfig发现oidc用户的refresh-token及id-token已经被配置 如果不使用kubelogin等工具也可以直接通过curl获取token信息 curl -k 'https

    4.3K20

    (译)Kubernetes 单点登录详解

    这里有一个容易混淆的环节就是使用管理员凭据而非在特定 realm 中创建的普通用户的凭据进行登录。...如果回到 Gitea 的登录页面,我们会发现可以直接用 Keycloak 中创建的用户凭据登录。注意要使用 master realm 中的用户而非管理用户。 这个过程没有重定向,密码认证会在后台执行。...如果我们进入该用户的 security settings 页面,因为用户是外部托管的,无法在 Gitea 中修改密码,只能在 Keycloak 做管理。...需要着重关注的是,Gitea 会在创建 Provider 的时候进行证书认证,所以如果 SSL 证书无效的时候是无法完成的。 在尝试登录之前,我们需要给在 Keycloak 中创建的用户设置一个密码。...这样用户必须使用 Keycloak 中的有效凭据完成 docker login 才能够进行 push 和 pull。注意这里没有什么访问控制,所有 Keycloak 用户都能够对任何镜像执行任何动作。

    7K50

    Keycloak 开源身份管理解决方案入门指南

    简单来说,Keycloak就是一个统一管理用户身份、权限的系统,它能够:为你的应用提供单点登录(SSO)功能支持多种身份认证方式(用户名/密码、社交登录、双因素等)提供用户管理功能(注册、资料管理、密码重置等...点击"Administration Console",使用之前设置的管理员账号登录登录后,你会看到默认的"master" realm。..."中添加提供商(如LDAP、Kerberos)配置连接参数和同步设置用户可以使用现有系统的凭据登录Keycloak常见问题与解决方案在使用Keycloak过程中,我曾遇到过一些问题,这里分享一些解决方案...如果不确定,可以使用通配符,如"http://localhost:3000/*"。跨域(CORS)问题问题:前端应用调用Keycloak API时遇到CORS错误。...等企业级数据库启用HTTPS - 身份认证服务必须使用HTTPS保护,可以配置Keycloak直接使用HTTPS或通过反向代理适当的内存配置 - 根据预期用户量调整JVM内存参数集群设置 - 对于高可用需求

    65210

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

    控制台使用 接下来我们来体验下Keycloak的管理控制台,看看这个可视化安全框架有什么神奇的地方。 首先输入我们的账号密码admin:admin进行登录; ?...接下来我们可以在macrozheng领域中去创建用户,创建一个macro用户; ? 之后我们编辑用户的信息,在凭据下设置密码; ?...创建完用户之后,就可以登录了,用户和管理员的登录地址并不相同,我们可以在客户端页面中查看到地址; ?...相关配置 keycloak: # 设置客户端所在领域 realm: macrozheng # 设置Keycloak认证服务访问路径 auth-server-url: http://192.168.7.142...登录成功后,即可访问被保护的Swagger页面和API接口,一个很标准的Oauth2的授权码模式,流程参考授权码模式的说明即可。 ?

    3.2K21

    Kubernetes 中用 Sidecar 为应用添加 Oauth 功能

    Keycloak 服务的初始化 Keycloak 支持多种数据库存储,这里为了方便,就直接使用内置的 H2 数据库了。...这里选用的镜像是jboss/keycloak:3.4.2.Final,开放服务端口 8080,并设置了三个环境变量: KEYCLOAK_USER:KeyCloak 初始管理员账号 KEYCLOAK_PASSWORD...:KeyCloak 初始管理员密码 PROXY_ADDRESS_FORWARDING:KeyCloak 部署在反向代理之后(Kubernetes 部署方式就在此列),就必须设置此变量为true 接下来部署相关的...设置 Keycloak 服务器 启动 Keycloak Server 之后,我们访问https://[keycloak service url]/auth/admin/,使用环境变量中设置的用户名密码登录...在浏览器打开 httpbin 服务,会看到对这一服务的访问会被转向 Keycloak 的登录页面。如果输入的是管理员的账号密码,是无法成功访问服务的;而输入我们新建账号的登录凭据,则可以顺利返回。

    2.2K30

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

    在使用Keycloak的时候可能有同学都注意到用户的管理都是通过Keycloak提供的UI来进行的,虽然很方便但是很多时候并不适合在开发中使用。...比如注册总不能让终端用户直接去Keycloak的管理控制台(Admin Console)操作吧。所以需要将这些功能API化才行,今天来分享一个通过编程对Keycloak进行操作的方法。...使用Admin账户创建新用户 Master Realm中的Admin管理员拥有管理Keycloak的最高权限,使用它几乎可以在Keycloak中“为所欲为”。...使用Realm管理用户创建新用户 Master Realm的管理员账户不屑于干这些“低级”的操作,这种事一般会交给“小弟”去做。...开启服务账户功能 这样我们可以直接向Keycloak服务器获取realm-management的访问凭据,因为realm-management有全部的管理功能,所以我们可以以客户端的名义而非管理用户的名义创建新用户了

    3.5K60

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

    API Server 作为 Kubernetes 的网关,是用户访问和管理资源对象的入口。对于每个访问请求, API Server 都需要对访问者的合法性进行检查,包括身份验证、权限验证等等。...在 Keycloak 中有以下几个主要概念: 领域(realms):领域管理着一批用户、证书、角色、组等等,不同领域之间的资源是相互隔离的,实现了多租户的效果。...9.1 方式一:OIDC 身份认证组件 接下来使用以下命令在 kubeconfig 文件中为用户 tom 添加新的凭据,idp-issuer-url 参数的 URL 使用 6.5 查看端点信息章节中看到的...设置完毕后,使用 kubectl 命令访问时,浏览器会自动弹出 Keycloak 认证页面,输入用户名和密码后就可以正常访问相应的资源了。...[使用 KeyCloak 对 Kubernetes 进行统一用户管理] (https://cloud.tencent.com/developer/article/1804656) 7.

    9.3K30

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

    jboss/keycloak 执行上述命令安装Keycloak,成功后打开http://localhost:8011/auth/admin输入账号admin和密码admin,就进入了管理控制台。...默认情况下,Keycloack提供了一个叫Master的realm,这个Master不承担具体应用和用户的管理,它只用来管理其它realm的生命周期。 ?...接下来在我上面的自定义域felord.cn中新建一个用户,步骤为: 菜单栏找到管理->用户,然后打开添加用户。 键入唯一的必填项用户名(username)。...点击凭据(Credentials)选项卡为新用户设置临时密码。此密码是临时的,用户将需要在第一次登录时更改它。如果您更喜欢创建永久密码,请将临时开关切换到关闭并单击设置密码。...Keycloak的核心概念 接下来是我们在使用Keycloak时需要掌握的一些概念,上面已经提到了realm和user,这里就不再赘述了 authentication 识别和验证用户的过程。

    5.5K30

    数字身份的通行证:深入解析单点登录(SSO)的架构与艺术

    单点登录,是一种身份认证机制,它允许用户在一次登录后,获得访问多个相互信任的应用系统的权限,而无需再次输入凭据。...高效的运维管理:大幅降低账号管理和密码重置的人力成本,实现身份的自动化生命周期管理。三、SSO 的基本工作原理:一次认证,处处通行SSO 的核心在于一个所有应用都共同信任的认证中心。...协议一句话总结适用场景SAML 2.0企业级标准的 XML 格式“身份证”企业内部系统、B2B 集成,如对接 Salesforce、Office 365OAuth 2.0为第三方应用颁发的“授权钥匙”开放平台、API...代表产品:Keycloak, Auth0, Okta, 阿里云 IDaaS, 腾讯云 CAM。优势:部署简单,策略统一,易于管理。2. 联邦身份跨组织、跨域的信任体系。...生命周期管理:设置合理的有效期,并使用 Refresh Token 机制,兼顾安全与体验。防止重放攻击:引入 nonce(随机数)和 timestamp(时间戳),确保请求的唯一性和时效性。

    51221

    rabbitMQ教程(五)rabbitmq 指令 以及解决web管理界面无法使用guest用户登录

    翻看官方的release文档后,得知由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用...(2) 监控者(monitoring) 可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等) (3)...与administrator的对比,administrator能看到这些内容 (4) 普通管理者(management) 仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息...,也无法对策略进行管理。...(5) 其他 无法登陆管理控制台,通常就是普通的生产者和消费者。 了解了这些后,就可以根据需要给不同的用户设置不同的角色,以便按需管理。

    2.9K40

    云原生 PostgreSQL 集群 - PGO:5分钟快速上手

    这些包括: user: 用户帐户的名称。 password: 用户帐户的密码。 dbname: 默认情况下用户有权访问的数据库的名称。 host: 数据库主机的名称。...如果您使用 PgBouncer 连接池部署 Postgres 集群,则用户 Secret 中会填充其他值,包括: pgbouncer-host: PgBouncer 连接池的主机名。...请注意,所有连接都使用 TLS。PGO 为您的 Postgres 集群设置 PKI。您也可以选择自带 PKI / certificate authority;这将在文档后面介绍。...例如,让我们连接 Keycloak。Keycloak 是一种流行的开源身份管理工具,由 PostgreSQL 数据库支持。...使用我们创建的 hippo 集群,我们可以部署以下清单文件: Keycloak https://www.keycloak.org/ cat > keycloak.yaml apiVersion

    1.8K10

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

    简单来说,以google授权为例,一般就是通过用户授权页面登录google账号,再跳转用code换取到相应权限的token,就可以代表用户去发起一些google api的请求。...最好能有一套通用的解决方案来解放双手, 今天我们就聊聊如何用keycloak实现一套通用的身份验证和授权管理方案。 提前说明,无法本地复刻的技术方案不利于理解,也不利于方案探讨。...keycloak IDP keycloak 配置 上边流程怎么让 keycloak 这个身份和访问管理系统接管呢,答案是使用keycloak IDP (Identity provider) 我们先看下需要如何配置相应配置...admin页面没有,但admin api确可以设置,也是很 tricky 代码实现 就是直接换取refresh_token, 请求地址指明对应的idp即可 // src/extensions/keycloak_auth.rs...好了,keycloak如何管理external auth到这里就结束了。以上是我在使用keycloak的一些摸索和思考,欢迎大家一起探讨。

    1.8K30

    面试官:SSO单点登录和 OAuth2.0 有何区别?

    1 单点登录(SSO) 单点登录(SSO)是一种身份验证方法,允许用户在一个应用程序或服务中登录后,无需再次输入凭据即可访问其他相关应用程序或服务。...OAuth2.0 是最常用的版本,它支持多种授权流程,包括授权码流程、隐式流程和客户端凭据流程。...Keycloak:Keycloak 是一个开源的身份和访问管理解决方案,它支持 OAuth2、OpenID Connect 和其他身份协议。...Keycloak 提供了一个易于使用的管理界面,允许开发者配置和管理 OAuth2 相关的设置,如客户端、用户和角色等。...它通过独立的登录中心来实现这一目标,使用户只需在一个地方输入凭据即可访问所有相关应用程序和服务。

    1.5K11

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

    ; 2.2 Keycloak配置 访问 上述步骤安装后的Keycloak ip,例如可以是http://localhost, 会自动打开如下页面,从管理员界面进行登录,账号密码如步骤1中的环境变量所设置...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

    8.5K111

    SSO 单点登录和 OAuth2.0 有何区别?

    1 单点登录(SSO) 单点登录(SSO)是一种身份验证方法,允许用户在一个应用程序或服务中登录后,无需再次输入凭据即可访问其他相关应用程序或服务。...OAuth2.0 是最常用的版本,它支持多种授权流程,包括授权码流程、隐式流程和客户端凭据流程。...Keycloak:Keycloak 是一个开源的身份和访问管理解决方案,它支持 OAuth2、OpenID Connect 和其他身份协议。...Keycloak 提供了一个易于使用的管理界面,允许开发者配置和管理 OAuth2 相关的设置,如客户端、用户和角色等。...它通过独立的登录中心来实现这一目标,使用户只需在一个地方输入凭据即可访问所有相关应用程序和服务。

    1.7K10

    OAuth2 服务器Keycloak中的Realm

    这个是Keycloak内建的Realm,它的作用有点类似Linux中的root用户,主要是管理其它的Realm,Master Realm中的管理员账户有权查看和管理在Keycloak服务器实例上创建的任何其它...设置Realm管理账户 为前面我初始化的Realmfelord.cn创建独立的管理员账户有两种方式。...使用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。

    2.2K60

    云原生 PostgreSQL - CrunchyData PGO 教程:创建、连接、删除 Postgres 集群

    此 Secret 包含将应用程序连接到 Postgres 数据库所需的信息: user: 用户帐户的名称。 password: 用户帐户的密码。...例如,要将 Postgres 主节点设置为使用 NodePort 服务,您可以在清单中添加以下内容: spec: service: type: NodePort 对于我们的 hippo 集群...连接应用程序 对于本教程,我们将连接 Keycloak,一个开源身份管理应用程序。Keycloak 可以部署在 Kubernetes 上,并由 Postgres 数据库提供支持。...虽然我们在 Postgres Operator 示例存储库中提供了一个部署 Keycloak 和 PostgresCluster 的示例,但下面的清单使用我们已经运行的 hippo 集群来部署它: Keycloak...这意味着我们不需要知道任何连接凭据,也不需要不安全地传递它们 — 它们直接可供应用程序使用!

    2.5K40
    领券