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

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


红帽 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值