LDAP for Jenkins2: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 99: | Строка 99: | ||
</PRE> |
</PRE> |
||
==Создание объектов в LDAP== |
==Создание объектов в LDAP== |
||
+ | ==memberOF== |
||
+ | LDAP по-умолчанию не включает поддержку атрибута memberOf |
||
+ | |||
+ | Вообще-то функционал OpenLDAP расширяется с помошью расширений, которые необходимо подключать. случае - это расширение memberOf |
||
+ | * конфигурация сервера хранится в нем самом в <B>cn=config</B> |
||
+ | * проверить текущую конфигурацию можно командой |
||
+ | <PRE> |
||
+ | ldapsearch -Q -Y EXTERNAL -H ldapi:/// -b cn=config |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | dn: cn=module,cn=config |
||
+ | changetype: add |
||
+ | cn: module |
||
+ | objectClass: olcModuleList |
||
+ | olcModuleLoad: memberof |
||
+ | olcModulePath: /usr/lib/ldap |
||
+ | |||
+ | dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config |
||
+ | changetype: add |
||
+ | objectClass: olcConfig |
||
+ | objectClass: olcMemberOf |
||
+ | objectClass: olcOverlayConfig |
||
+ | objectClass: top |
||
+ | olcOverlay: memberof |
||
+ | olcMemberOfDangling: ignore |
||
+ | olcMemberOfRefInt: TRUE |
||
+ | olcMemberOfGroupOC: groupOfNames |
||
+ | olcMemberOfMemberAD: member |
||
+ | olcMemberOfMemberOfAD: memberOf |
||
+ | </PRE> |
||
+ | |||
+ | Управлять конфигурацией (без дополнительной настройки) можно только используя |
||
+ | <B> -Y EXTERNAL -H ldapi:/// </B> |
||
+ | |||
+ | <PRE> |
||
+ | ldapmodify -Q -Y EXTERNAL -H ldapi:/// < 004_enableMemberof.ldif |
||
+ | adding new entry "cn=module,cn=config" |
||
+ | |||
+ | adding new entry "olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config" |
||
+ | </PRE> |
||
===Org Unit=== |
===Org Unit=== |
Версия 14:12, 9 ноября 2016
LDAP
Установка и базовая конфигурация
sudo apt-get update sudo apt-get install slapd ldap-utils phpldapadmin mc vim strace tcpdump tcpflow
Эта команда установить
- OpenLDAP сервер
- Консольный клиент для OpenLDAP
- phpLDAPadmin для того что бы более удобно управлять записями в LDAP
Пароль при установке - r00tme
Если требуется перенастроить - то
dpkg-reconfigure slapd
В отличие от CentOS, под Ubuntu OpenLDAP частично сконфигурирован. Посмотреть настройки можно командой slapcat
slapcat
dn: dc=nodomain objectClass: top objectClass: dcObject objectClass: organization o: nodomain dc: nodomain structuralObjectClass: organization entryUUID: 04ec921c-3941-1036-8b2b-39dffbd1cf0d creatorsName: cn=admin,dc=nodomain createTimestamp: 20161107142003Z entryCSN: 20161107142003.564562Z#000000#000#000000 modifiersName: cn=admin,dc=nodomain modifyTimestamp: 20161107142003Z dn: cn=admin,dc=nodomain objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword:: e1NTSEF9ZFUzZk1jRHVXT2RJSVZGY0lveWloK01mRVFQNTNqSzM= structuralObjectClass: organizationalRole entryUUID: 04ed4aea-3941-1036-8b2c-39dffbd1cf0d creatorsName: cn=admin,dc=nodomain createTimestamp: 20161107142003Z entryCSN: 20161107142003.569291Z#000000#000#000000 modifiersName: cn=admin,dc=nodomain modifyTimestamp: 20161107142003Z
Очевидно, что DC=nodomain это не совсем то что нужно
Запустить реконфигурацию, настроить домен cicd
slapcat
dn: dc=cicd objectClass: top objectClass: dcObject objectClass: organization
Проверка подключения:
ldapsearch -h 10.20.0.100 -D "cn=admin,dc=cicd" -w r00tme -b "dc=cicd"
- -h 10.20.0.100 - хост к которому подключаться
- -D "cn=admin,dc=cicd" - Bind DN - "логин"
- -w r00tme - пароль
- -b "dc=cicd" - base for search, точка в дереве откуда начинать поиск.
PHP LDAP ADMIN
Установить следующие значения в файле /usr/share/phpldapadmin/config/config.php
- Отключить предупреждения в темплейтах
$config->custom->appearance['hide_template_warning'] = true;
- base - точка в дереве от котоой будет идти поиск объектов
$servers->setValue('server','base',array('dc=cicd'));
- name - отображаемое имя сервера
$servers->setValue('server','name','CICD LDAP Server');
- Фактический хост куда будет подключаться php ldap client (может быть 127.0.0.1 если все настраивается в пределах одного хоста)
$servers->setValue('server','host','10.20.0.100');
- Логин по-умолчанию
$servers->setValue('login','bind_id','cn=admin,dc=cicd');
Создание объектов в LDAP
memberOF
LDAP по-умолчанию не включает поддержку атрибута memberOf
Вообще-то функционал OpenLDAP расширяется с помошью расширений, которые необходимо подключать. случае - это расширение memberOf
- конфигурация сервера хранится в нем самом в cn=config
- проверить текущую конфигурацию можно командой
ldapsearch -Q -Y EXTERNAL -H ldapi:/// -b cn=config
dn: cn=module,cn=config changetype: add cn: module objectClass: olcModuleList olcModuleLoad: memberof olcModulePath: /usr/lib/ldap dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config changetype: add objectClass: olcConfig objectClass: olcMemberOf objectClass: olcOverlayConfig objectClass: top olcOverlay: memberof olcMemberOfDangling: ignore olcMemberOfRefInt: TRUE olcMemberOfGroupOC: groupOfNames olcMemberOfMemberAD: member olcMemberOfMemberOfAD: memberOf
Управлять конфигурацией (без дополнительной настройки) можно только используя -Y EXTERNAL -H ldapi:///
ldapmodify -Q -Y EXTERNAL -H ldapi:/// < 004_enableMemberof.ldif adding new entry "cn=module,cn=config" adding new entry "olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config"
Org Unit
cat 001_org_unit.ldif
dn: ou=cicd,dc=cicd changetype: add ou: CICD objectClass: organizationalUnit description: CICD OU for Jenkis/Git groups and permissions
ldapmodify -h 10.20.0.100 -D "cn=admin,dc=cicd" -w "r00tme" < 001_org_unit.ldif adding new entry "ou=cicd,dc=cicd"
Groups
Admin group
dn: cn=cicd administrators,ou=cicd,dc=cicd changetype: add cn: cicd_administrators objectClass: posixGroup gidNumber: 5000 description: CI/CD administrators
ldapmodify -h 10.20.0.100 -D "cn=admin,dc=cicd" -w "r00tme" < 0002_cicd_admin.ldif adding new entry "cn=cicd administrators,ou=cicd,dc=cicd"
Users group
dn: cn=cicd users,ou=cicd,dc=cicd changetype: add cn: cicd_users objectClass: posixGroup gidNumber: 6000 description: CI/CD users
root@jenkins:~/ldap_objects# ldapmodify -h 10.20.0.100 -D "cn=admin,dc=cicd" -w "r00tme" < 0002_cicd_users.ldif adding new entry "cn=cicd users,ou=cicd,dc=cicd"