我是靠谱客的博主 健康可乐,最近开发中收集的这篇文章主要介绍FreeIPA配置笔记安装FreeIPA配置FreeIPA统一登录集成,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

安装FreeIPA

主机名设置

hostnamectl set-hostname idm.git.com.cn

Hosts配置

  • 很关键, 不然会有很多问题, 比如named服务无法启动
echo '172.16.20.53 idm.git.com.cn' >> /etc/hosts

YUM安装

yum install ipa-server ipa-server-dns

一路回车即可, 或者根据自己需求填写

访问

配置本机hosts, 域名指向idm服务

浏览器访问: https:// idm.git.com.cn

关于访问端口:

FreeIPA端口相关:
https访问:
443
dns域名解析:
53
ntp时钟服务:
123
ldap协议:
389
ldap加密协议:
636
kadmind:
464
krb5kdc:
88
pki-tomcatd:
8443

配置

免交互操作

管理员登录

echo 'Aa123456'|kinit admin

用户操作

添加用户

echo 'Aa123456
Aa123456
'|ipa user-add wangshui --first=wang --last=shui --displayname=显示名称 --email=wangshui@git.com.cn --homedir=/home/wangshui --password

查询用户

# 方法一
ldapsearch -x -h idm.git.com.cn -b dc=idm,dc=com,dc=cn uid=admin
# 方法二
配置/etc/openldap/ldap.conf
SASL_NOCANON
on
URI ldaps://idm.git.com.cn
BASE dc=idm,dc=com,dc=com,dc=cn
TLS_CACERT /etc/ipa/ca.crt
ldapsearch -x uid=wangshui

用户组操作

# 创建分组
ipa group-add D-Team-Java-01 --desc='GroupLeader: wangzhenlei' --nonposix
ipa group-add D-Team-Java-02 --desc='GroupLeader: xiaopengcheng' --nonposix
ipa group-add D-Team-Java-03 --desc='GroupLeader: zhangjing' --nonposix
ipa group-add GitLab --desc='GitLab Repository' --nonposix
ipa group-add Jira --desc='Project Management' --nonposix
# 添加用户
ipa group-add-member dev-java-01 --users=wangshui --users=lixuchun
# 查询分组
ipa group-show gitlab

简单的用户创建脚本

#!/bin/bash
admin_login() {
echo 'Aa123456'|kinit admin
}
add_user() {
for user in `cat user.info|egrep -v "^$|#"`
do
firstname=$(echo $user|awk -F'@' '{print $1}')
lastname=$(echo $user|awk -F'@' '{print $2}')
username=${firstname}${lastname}
displayname=$(echo $user|awk -F'@' '{print $3}')
echo "123456
123456
"|ipa user-add ${username} --first=${firstname} --last=${lastname} --displayname=${displayname} --email=${username}@git.com --homedir=/home/${username} --password
done
}
admin_login
add_user

user.info内容

# firstname@lastname@displayname
zhang@san@张三
li@si@李四
xiao@dangjia@小当家

FreeIPA统一登录集成

如果Docker-compose部署的话, 添加一行

# idm未配置DNS服务, 则加入如下hosts解析
extra_hosts:
- "idm.git.com.cn:172.16.20.53"
# 如果idm配置了dns服务, 主机A记录已经添加了idm.git.com.cn, 则配置如下即可:
dns:
- 172.16.20.53

集成GitLab

  • idm创建一个gitlab组, 并添加用户

配置

vim gitlab.rb
gitlab_rails['ldap_enabled'] = true
gitlab_rails['prevent_ldap_sign_in'] = false
gitlab_rails['ldap_group_sync_worker_cron'] = "0 */1 * * * *"
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'idm.git.com.cn'
port: 389
uid: 'uid'
bind_dn: 'uid=admin,cn=users,cn=accounts,dc=git,dc=com,dc=cn'
password: 'Aa123456.'
encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
verify_certificates: false
smartcard_auth: false
active_directory: true
allow_username_or_email_login: false
lowercase_usernames: false
block_auto_created_users: false
base: 'dc=git,dc=com'
attributes:
username: 'uid'
email: 'mail'
name: 'displayname'
first_name: 'givenName'
last_name: 'sn'
## EE only
group_base: ''
admin_group: ''
sync_ssh_keys: false
EOS

验证

gitlab-ctl check-config
gitlab-ctl reconfigure
gitlab-rake gitlab:ldap:check

这里不知道dn或者base的, 可以使用ldapsearch -x 去过滤查询

集成Jenkins

插件: LDAP

配置: 系统管理–>全局安全配置

Server:
ldap://idm.git.com.cn
root DN:
dc=git, dc=com, dc=cn
User search base:
cn=users,cn=accounts
User search filter:
uid={0}
Group search base:
空即可
Group membership:
选择Search for LDAP groups containing user, Group membership filter值留空即可
Manager DN:
uid=admin,cn=users,cn=accounts,dc=git,dc=com,dc=cn
Manager Password:
Aa123456
Display Name LDAP attribute:	displayname
Email Address LDAP attribute:	mail
  1. 不同的base dn返回属性不一样, cn=users,cn=accounts和cn=users,cn=compat返回结果的属性就不一样, 具体可以通过ldapsearch -x uid= 来查看怎么配置用户的dn
  2. jenkins的group search貌似不生效, 还没找到更好的办法, 只能说是, idm中的用户都能登录jenkins, 但是登录之后具体的权限, 需要jenkins内部控制一下了(可以使用Role-based Authorization和Authorize Project插件)

集成Jumpserver

配置: 系统设置–>LDAP设置

LDAP服务器:
LDAP地址:
ldap://idm.git.com.cn:389
绑定 DN:
uid=admin,cn=users,cn=accounts,dc=git,dc=com,dc=cn
密码:
Aa123456
LDAP用户:
用户 OU:
cn=users,cn=accounts,dc=git,dc=com,dc=cn
用户过滤器:
(cn=%(user)s)
LDAP属性映射:
{"username":"uid","name":"displayname","email":"mail"}
其他:
启用 LDAP 认证:
勾选

集成Jira或者Confluence

  • 创建jira-administrators分组, 并将admin加入到组中
  • 创建jira-software-users分组, 并加入用户

配置: 管理–>用户管理–> 用户目录–> 添加目录–> LDAP

配置 LDAP 用户目录:

服务器设置:
名称:
FreeIPA
目录类型:
OpenLDAP
主机名:
idm.git.com.cn
端口:
389
用户名:
uid=admin,cn=users,cn=accounts,dc=git,dc=com,dc=cn
密码:
Aa123456
LDAP模式:
基本DN:
dc=git,dc=com,dc=cn
附加用户DN:
cn=users,cn=accounts
附加组DN:
cn=groups,cn=accounts
LDAP权限:
只读:
勾选
高级设置:
简单DN匹配:
勾选
同步间隔(分钟):
5分钟(根据实际情况)
其余不变
用户模式设置:
用户对象类:
posixaccount
用户对象过滤器:
(objectclass=posixaccount)
用户名属性:
uid
用户名RDN属性:
uid
用户名字属性:
givenName
用户姓氏属性:
sn
用户显示名属性:
displayName
用户电邮属性:
mail
用户密码属性:
userPassword
用户密码加密:
SHA
用户唯一的ID属性:
uidNumber
组模式设置:
组对象类:
groupofnames
组对象过滤器:
(objectclass=groupofnames)
组名属性:
cn
组描述属性:
description
成员模式设置:
组成员属性:
member
//这里和OpenLdap不一样, 取成员的方法不是uniqueMember
成员属性:
memberOf

组成员属性很关键, 否则无法读取用户组下面的用户,把用户添加到对应的组内, 测试的时候也会提示 ‘测试得到用户的会员资格 : 失败’

最后

以上就是健康可乐为你收集整理的FreeIPA配置笔记安装FreeIPA配置FreeIPA统一登录集成的全部内容,希望文章能够帮你解决FreeIPA配置笔记安装FreeIPA配置FreeIPA统一登录集成所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(27)

评论列表共有 0 条评论

立即
投稿
返回
顶部