OpenShift 4 - 从 FreeIPA/RHIdM 向 RHSSO 同步用户和组

news2024/11/15 16:50:22

《OpenShift / RHEL / DevSecOps / Ansible 汇总目录》
说明:本文已经在 OpenShift 4.11 环境中验证

文章目录

  • 安装 FreeIPA/RHIdM
  • 在 FreeIPA/RHIdM 中添加用户和组
  • 从 FreeIPA/RHIdM 向 RHSSO 同步用户和组
  • 参考

红帽 RHIdM 基于开源项目 FreeIPA,其内部提供 LDAP 功能可用来存储用户信息。本文将在 OpenShift 环境中配置从 FreeIPA/RHIdM 向 RHSSO 同步用户和组的配置数据。

说明:请先根据《OpenShift 4 - 利用 RHSSO 实现应用认证和访问授权》一文完成 kustomize 和 RHSSO 安装,并在 RHSSO 中完成创建用户和组的操作。

安装 FreeIPA/RHIdM

  1. 执行命令安装 kustomize 环境。
$ mkdir ~/kustomize && cd ~/kustomize
$ curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"  | bash
$ PATH=$PATH:~/kustomize
  1. 执行命令在 OpenShift 新建的项目 ipa 中先安装 freeipa 的 Template,然后在基于Template 部署容器环境。
$ oc new-project ipa
$ IMG=quay.io/freeipa/freeipa-openshift-container:latest
$ IMG_BASE=${IMG}

$ git clone https://github.com/freeipa/freeipa-openshift-container.git && cd freeipa-openshift-container/
$ kustomize build deploy/admin | oc create -f -

$ make template-create
$ make template-new-app
  1. 查看 freeipa 中的日志。注意 BaseDN 的内容,在后面会用到。
$ oc logs pod/freeipa -c init-container -f
...
[   ***] A start job is running for Configur… first start (6min 13s / no limit)
This program will set up IPA client.
Version 4.9.8

Using existing certificate '/etc/ipa/ca.crt'.
Client hostname: ipa.apps.cluster-72c7x.72c7x.sandbox2951.opentlc.com
Realm: APPS.CLUSTER-72C7X.72C7X.SANDBOX2951.OPENTLC.COM
DNS Domain: apps.cluster-72c7x.72c7x.sandbox2951.opentlc.com
IPA Server: ipa.apps.cluster-72c7x.72c7x.sandbox2951.opentlc.com
BaseDN: dc=apps,dc=cluster-72c7x,dc=72c7x,dc=sandbox2951,dc=opentlc,dc=com
...
  1. 查看 freeipa 的运行状态直到 Running。
$ oc get pod freeipa -n ipa
NAME      READY   STATUS    RESTARTS   AGE
freeipa   1/1     Running   0          6m36s
  1. 查看 freeipa 的访问地址和 admin 用户的登录密码,然后访问管理控制台。
$ oc get route freeipa -o jsonpath='{.spec.host}' -n ipa
ipa.apps.cluster-72c7x.72c7x.sandbox2951.opentlc.com
$ oc get secret freeipa -n ipa -o go-template --template="{{.data.IPA_ADMIN_PASSWORD|base64decode}}"
Z6bzS-G1zrD-4UPqV-gfJ0m

在这里插入图片描述

在 FreeIPA/RHIdM 中添加用户和组

  1. 在 FreeIPA/RHIdM 控制台的 “身份” - “用户” 中添加一个用户。
    在这里插入图片描述
  2. 配置新用户登录名 - robert,名 - Robert,姓 - Garcia,并设置密码。
    在这里插入图片描述
  3. 在控制台的 “身份”-“用户组” 中添加一个组,组名 - special_staff,组类型 - 非POSIX。
    在这里插入图片描述
  4. 进入 robert 用户,进入到 “用户组”,点击“添加”。
    在这里插入图片描述
  5. 将 special_staff 组从左侧加到右侧区域。
    在这里插入图片描述

从 FreeIPA/RHIdM 向 RHSSO 同步用户和组

  1. 执行命令获取名为 freeipa 的 Secret 中 IPA_DM_PASSWORD 对应的内容。
$ oc get secret freeipa -n ipa -o go-template --template="{{.data.IPA_DM_PASSWORD|base64decode}}"
r2BVq-C8Bk6-qyiX5-Z_dzN
  1. 在 RHSSO 控制台中点击 User Federation 菜单,然后在右侧选择 ldap。
    在这里插入图片描述
  2. 在 Ldap 页面中按照以下配置设置。其中 cn=users,cn=accounts,dc=apps,dc=cluster-72c7x,dc=72c7x,dc=sandbox2951,dc=opentlc,dc=com 部分的后面是前面安装过程获得的 BaseDN,而 Bind Credential 为前面获得的 IPA_DM_PASSWORD 内容。
配置
Connection URLldap://freeipa-ldap.ipa.svc.cluster.local:389
Users DNcn=users,cn=accounts,dc=apps,dc=cluster-72c7x,dc=72c7x,dc=sandbox2951,dc=opentlc,dc=com
Bind DNcn=Directory Manager
Bind Credentialr2BVq-C8Bk6-qyiX5-Z_dzN

在这里插入图片描述

  1. 在 Save 后可以看到成功导入的提示:
    Success! Sync of users finished successfully. 1 imported users, 0 updated users
  2. 进入 Ldap 的 Mappers,然后点击 Create。
    在这里插入图片描述
  3. 按照下表设置 Gourp 配置。其中 cn=groups,cn=accounts,dc=apps,dc=cluster-72c7x,dc=72c7x,dc=sandbox2951,dc=opentlc,dc=com 部分的后面是前面安装过程获得的 BaseDN。
配置
LDAP Groups DNcn=groups,cn=accounts,dc=apps,dc=cluster-72c7x,dc=72c7x,dc=sandbox2951,dc=opentlc,dc=com
LDAP Filter(cn=special_staff)
ModeLDAP_ONLY
User Groups Retrieve StrategyGET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE
Groups Path/staff

在这里插入图片描述

  1. 按在 Save 后可以看到成功导入的提示:
    Success! Data synced successfully. 1 imported groups, 0 updated groups, 0 removed groups
  2. 在 RHSSO 的 Users 和 Groups 中可以看到从 FreeIPA/RHIdM 同步过来的用户和组。
    在这里插入图片描述
    在这里插入图片描述

参考

https://olleb.com/rhsso-workshop/federation.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61525.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows Access Token

Windows Access Token Windows Token其实叫Access Token(访问令牌),它是一个描 述进程或者线程安全上下文的一个对象。不同的用户登录计算机后, 都会生成一个Access Token,这个Token在用户创建进程或者线程 时会被使用,不断的拷贝…

如何选择和使用腾讯云服务器的方法新手教程

本文将介绍如何选择和使用腾讯云服务器的方法新手教程。云服务器能帮助快速构建更稳定、安全的应用,降低开发运维的难度和整体IT成本。腾讯云CVM云服务器提供多种类型的实例、操作系统和软件包。各实例中的 CPU、内存、硬盘和带宽可以灵活调整,以满足应用…

C++11中可变参数模板使用

在看同事编写的代码&#xff0c;发现有如下的代码&#xff0c;因为没用过&#xff0c;所以查了一下这是什么语法&#xff0c;通过查询资料知道了这是C11中增加的可变参数模板。 template<class T, class ...Args> bool GetValue(T &value, Args &&...args) c…

12.2-12.4总结

12.2 明明跟着Vue3的视频学的&#xff0c;结果今天发现我学的都是vue2的写法&#xff0c;导致网上查阅资料调用组件有很多东西看不懂。设置langts也用不了&#xff0c;所以去查文档&#xff0c;增加配置了。 -安装vue-cli手脚架 解决lang"ts"报错http://t.csdn.cn/…

【力扣周总结】

题目汇总 判断括号的合法 #20 有效的括号&#xff08;栈问题 stack &#xff09;#921. 使括号有效的最少添加&#xff08;纯逻辑题&#xff09;#1541. 平衡括号字符串的最少插入次数&#xff08;纯逻辑题&#xff09; 单调(递减)栈 - Next Greater Element 题型 496. 下一个…

计算机毕业设计源码——基于Android的真人社交游戏辅助应用开发

编号 本科生毕业设计&#xff08;论文&#xff09; 题目&#xff1a; 真人社交游戏辅助应用开发 专业 学 号 学生姓名 指导教师 摘 要 时至今日&#xff0c;社交已成为人们生活中必不可少的一部分&#xff0c;社交网络的盛行已经成为一种必然趋势&#xff0e;与此同时&a…

央企招聘:正式编制!八险三金!各项福利!中国邮政招人啦!

中国邮政薪酬待遇情况 &#xff08;仅供参考&#xff09; &#xff08;一&#xff09;薪酬水平 1.邮储总行&#xff1a;刚入职有六个月实习期&#xff0c;月薪6k左右&#xff0c;转正以后一年到手大概25w&#xff0c;在大行中处于中等偏上。利润中心等部门可能更高一些&#…

Java基于JSP的幼儿园管理系统

幼儿是祖国的花朵,是未来国家建设的接班人。如果能够让幼儿园更好的对院所内部进行更好的管理是很多家长和幼儿园的工作人员所关心的问题。为此我开发了幼儿园管理系统,让家长和院所的管理人员能够更好的进行沟通,从而到达更好的培养幼儿和让家长更好的了解自己孩子生活教育问题…

springboot自定义参数解析器

springboot自定义参数解析器1.前言2.springMVC参数解析器3.如何自定义参数解析器4测试1.前言 1.springMVC是如何把参数解析完毕后注入到controller方法参数上的呢&#xff1f;在javaweb阶段&#xff0c;我们都学过使用HttpServletRequest这个对象获取参数&#xff0c;比如 req…

Dubbo-服务暴露

前言 Dubbo源码阅读分享系列文章&#xff0c;欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制 Dubbo-Adaptive实现原理 Dubbo-Activate实现原理 Dubbo SPI-Wrapper 注册中心 Dubbo-聊聊注册中心的设计 Dubbo-时间轮设计 通信 Dubbo-聊聊通信模块设计 RPC 聊聊Dubbo协议 …

【编程题】【Scratch四级】2022.09 绘制图形

绘制图形 1. 准备工作 &#xff08;1&#xff09;默认小猫角色&#xff0c;默认白色背景。 2. 功能实现 &#xff08;1&#xff09;绘制出如上图所示图案&#xff0c;图形的中心在舞台中心点&#xff1b; &#xff08;2&#xff09;图形由12条蓝红相间&#xff0c;长度为80…

[附源码]Python计算机毕业设计Django咖啡销售平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

最强大脑记忆曲线(13)--应用程序的加密及授权码的实现

加密和授权一、python程序加密与授权的思考二、python文件 加密三、注册机代码目前我的小项目“最强大脑记忆曲线”已经可以出1.0版了&#xff0c;发布之前的最后一个环节就是给应用程序加密&#xff0c;并增加授权码了。关于这些&#xff0c;我之前思考过很多&#xff0c;因为…

【数据结构】二叉树OJ练习

&#x1f451;作者主页&#xff1a;进击的安度因 &#x1f3e0;学习社区&#xff1a;进击的安度因&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 文章目录一、二叉树的最小深度二、单值二叉树三、相同的树四、另一棵树的子树五、翻转二叉树六、…

毫米波传感器原理介绍:测速_1相位

在前文中&#xff0c;我们分析了 IF信号的频率&#xff0c;并展示了该频率与物体到雷达的距离 成正比。在本文中&#xff0c;我们将探讨IF 信号的相位。如果我们希望了解 FMCW 雷达响应物体极小位移的能力&#xff0c;那么研究相位就非常重要。雷达正是凭此非常快速且准确地测量…

Java 基础之线程

线程是 cpu 可以调度的最小单元&#xff0c;多线程可以利用 cpu 轮询时间片的特点&#xff0c;在一个线程进入阻塞状态时&#xff0c;快速切换到其余线程执行其余操作&#xff0c;减少用户的等待响应时间。所以我们需要了解线程的基本概念&#xff0c;如何启动线程以及怎么去控…

最短路径(Dijkstra算法与Floyd算法)

一、Dijkstra算法 Dijkstra算法与之前学习过的Prim算法有些相似之处。我们直接通过一个例子来讲解 假设要求的是A->E之间的最短路径。首先我们来列出顶点A到其他各顶点的路径长度&#xff1a;A->D 2&#xff0c;A->B 6&#xff0c;A->C 1&#xff0c;A->E…

MySQL主从复制

MySQL主从复制 MySQL主从复制原理 主服务器在更新数据前&#xff0c;会写入硬盘&#xff0c;银盘在再将数据写入二进制日志 从服务器开启I/O线程&#xff0c;Master节点为每个I/O线程启动一个dump线程用于发送二进制事件到从服务器的中继日志中 从服务器的sql线程开启&…

springboot集成dubbo配置多注册中心

1 dubbo多注册中心 dubbo可以支持多注册中心&#xff0c;以及多协议, 本文示例dubbo同时注册到nacos和zookeeper注册中心&#xff1a; 在前文基础上&#xff0c;给provider consumer模块加上zookeeper依赖&#xff1a; <dependency><groupId>org.apache.dubbo<…

TypeScript26(TS进阶用法Record Readonly)

Readonly Readonly与我们上一章节学的Partial 很相似&#xff0c;只是把? 替换成了 Readonly // 源码 type Readonly<T> {readonly [P in keyof T]: T[P]; }; 疑问&#xff1a; keyof 是干什么的&#xff1f; in 是干什么的&#xff1f; Readonly 是将该属性变为…