首页 > 其他分享 >Gerrit集成keycloak认证

Gerrit集成keycloak认证

时间:2023-11-27 14:32:47浏览次数:35  
标签:插件 Gerrit gerrit 认证 keycloak Keycloak

Gerrit集成KeyCloak

实践背景:

    为了更好的维护代码仓库,实现公司内部员工和外部员工账号集中管理,搭建Keycloak身份认证平台集成Gerrit代码仓库。

Keycloak是什么?

Keycloak是一个开源的、高度可定制的身份认证和授权管理解决方案,它提供了多种认证方法,包括单点登录、OAuth 2.0 和 OpenID Connect,支持各种标准协议和技术,并与许多常见的标准身份提供商(如Facebook、Google、Github、Gerrit、Jenkins等)集成。Keycloak 可以通过 REST API 进行自定义和扩展,还可以使用插件来实现自定义认证和授权方案。它提供了 Web 界面以及一组 REST API,使得应用程序可以轻松地与系统集成。Keycloak 是一款强大的身份认证和授权平台,具有易于使用、安全可靠、高可扩展性等特点,可广泛用于现代应用程序的身份认证和授权管理方案。

为什么要使Keycloak

根据公司Gerrit服务现有认证是通过http认证,需求账号都是通过手动创建,

这点非常不友好,再加上供应商外包模式,http认证就不能区分内部人员和外部人员,使用Keycloak不仅能关联外界认证服务(LDAP),还能兼容本地用户认证(Gerrit用户=LDAP用户+Keycloak本地用户,LDAP用户为内部用户,Keycloak本地用户为外部用户)。

Keycloak实操

安装部署

采用docker方式部署,下载Keycloak image镜像,使用docker run命令进行启动

docker run -d -p 8011:8080 -v /home/kuser/configuration:/opt/jboss/keycloak/standalone/configuration -v /home/kuser/log:/opt/jboss/keycloak/standalone/log --name keycloak-server  -e KEYCLOAK_USER=username -e KEYCLOAK_PASSWORD=password jboss/keycloak

注意:将配置文件和日志文件挂载出来,便于分析问题

应用环境配置

创建领域

创建客户端client

创建身份联合

同步ldap到keycloak

修改映射关系

修改Username对应为:sAMAccountName

修改firstName 对应为:givenName


Gerrit实操

用户认证主要是通过Gerrit Oauth插件来实现,用户登入后请求到Keycloak进行用户和密码验证,通过后返回username给到Gerrit。

gerrit安装插件

1)  插件下载链接

https://gerrit-ci.gerritforge.com/

2)插件安装

       将插件拷贝到${gerrit_home}/plugins下面或使用命令方式进行安装:

ssh -p 29418 admin@gerritserver

gerrit插件配置

  ${gerrit_home}/etc/gerrit.config   添加如下配置:

     [auth]
      type = OAUTH
      gitBasicAuthPolicy = http     该配置支持http
      logoutUrl=http://keycloakserver:port/auth/realms/test/protocol/openid-connect/logout?redirect_uri=http://gerritserver:port/该配置为退出gerrit同时退出keycloak

     [plugin "gerrit-oauth-provider-keycloak-oauth"]
      root-url = http://keycloakserver:port
      realm = test
      client-id = xxx
      client-secret = xxx
      use-preferred-username = true

管理员账号迁移

1)先配置一个admin

2)使用现有模式克隆All-Users仓库,并获取gerrit管理员accoutid,并清空管理员邮箱

3)操作步骤2,完成oauth插件安装,并重启gerrit

4)使用keycloak方式注册gerrit管理员

5)修改配置切换type=development_become_any_account或修改配置切换为原有模式,并重启gerrit

6)更新All-Users,查看使用keycloak注册的gerrit管理员acoutid,命令:grep -r "keycloak"

7)再次切换为 type = OAUTH认证方式,重启gerrit,使用keycloak提供的管理员账号登入

账号迁移

实现原理:通过keycloak创建gerrit的账号ID替换原有ID,这个动作重复循

环,通过jenkins自建任务实现


测试结果

登入gerrit,弹出对话框,说明gerrit集成keycloak成功

标签:插件,Gerrit,gerrit,认证,keycloak,Keycloak
From: https://blog.51cto.com/u_12911547/8584804

相关文章

  • Flask 实现Token认证机制
    在Flask框架中,实现Token认证机制并不是一件复杂的事情。除了使用官方提供的flask_httpauth模块或者第三方模块flask-jwt,我们还可以考虑自己实现一个简易版的Token认证工具。自定义Token认证机制的本质是生成一个令牌(Token),并在用户每次请求时验证这个令牌的有效性。整个过程可以分......
  • Flask Session 登录认证模块
    Flask框架提供了强大的Session模块组件,为Web应用实现用户注册与登录系统提供了方便的机制。结合Flask-WTF表单组件,我们能够轻松地设计出用户友好且具备美观界面的注册和登录页面,使这一功能能够直接应用到我们的项目中。本文将深入探讨如何通过Flask和Flask-WTF构建一个......
  • 华为认证 | Security安全认证学什么?IA、IP、IE学习内容详解!
    互联网高速发展的如今,网络安全愈发受到重视,所以很多互联网相关的认证都推出了安全方向的认证。作为国内一大厂商的华为自然也是不例外的,毕竟华为认证覆盖ICT全领域,怎么会少得了安全方向呢?那么网络安全华为认证到底是什么?有何用处?接下来在这篇文章中为大家讲解清楚。01网络安全华......
  • 思科认证 | CCNP考试都考什么?
    IT行业是一个很吃香的行业,想要进入IT行业的人都会考思科认证,CCNP认证就是思科认证里面非常有名的认证。那么今天我们就来聊聊它的考试内容都有什么呢?01CCNP考试题型有哪些CCNP的考试就两门,而且都是笔试考试。CCNP考试题型上,主要有单选题、多选题、拖图题及实验题。考试形式是机试......
  • 华为认证 | 华为认证体系超全详解!
    华为作为全球领先的科技企业,其认证体系备受瞩目。华为认证体系是华为技术有限公司推出的全球性IT认证标准,旨在为全球范围内的企业和个人提供专业的IT技能认证。华为认证体系涵盖了路由、交换、安全、存储等多个领域,为IT从业者提供了全面的技能提升和认证机会。下面我们就来了解一下......
  • 【Django基础】auth认证模块
    https://www.cnblogs.com/DuoDuosg/p/17005583.html一、django的auth认证模块1.什么是auth模块Auth模块是Django自带的用户认证模块:我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能,......
  • 14,grafana 的ldap 认证
    在设置之前,必须弄懂ldap里面的几个名词cn、ou、dc、dn(自行百度)dn包含前三个,下面就是一个dn(uid=mcc)cn=student,ou=chuanda,dc=chengdu,dc=sichuan,dc=china作用等于china/sichuan/chengdu/chuanda/mcc就用ldap登录后的返回好了,看官一看便知![{DN:"uid=chenchen.m......
  • nacos 2.2.3版本开启登录认证
    server.tomcat.basedir=/root/nacos #此路径必须存在nacos.core.auth.system.type=nacosnacos.core.auth.enabled=truenacos.core.auth.server.identity.key=serverIdentitynacos.core.auth.server.identity.value=securitynacos.core.auth.plugin.nacos.token.secret.key=S......
  • springboot 集成swagger3.0 并开启权限认证
    1.POM文件只需要引入一个依赖即可  2.swagger配置文件如下注意:要添加“@EnableWebMvc"注解,详细代码如下:@Configuration@EnableWebMvcpublicclassSwaggerConfig{@Value("${swagger.enabled}")booleanenabled;@BeanpublicDocketdocket(){r......
  • keycloak~登录步骤页login-actions/authenticate出现无限次302跳转的原因与解决
    问题出现的前提keycloak通过k8s部署,并进行了集群部署,共2个节点通过域名解析后,直接到外网LB,在LB上配置了k8s-ingress的IP,端口是80和443在keycloak应用的ingress配置中,对域名进行了keycloak服务的绑定问题的描述有时间无法完成登录,点登录后,刷新了一次登录页,未完成登录行为......