概述
安装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
- 不同的base dn返回属性不一样, cn=users,cn=accounts和cn=users,cn=compat返回结果的属性就不一样, 具体可以通过ldapsearch -x uid= 来查看怎么配置用户的dn
- 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统一登录集成所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复