Аутентификация LDAP - OpenShift - OKD - PullRequest
0 голосов
/ 28 мая 2019

Я развернул новый кластер OKD (3.11) и в качестве провайдера идентификации я выбрал LDAPPasswordIdentityProvider

Конфигурация выглядит следующим образом:

openshift_master_identity_providers=[{'name': 'idm', 'challenge': 'true', 'login': 'true', 'kind': 'LDAPPasswordIdentityProvider', 'attributes': {'id': ['dn'], 'email': ['mail'], 'name': ['cn'], 'preferredUsername': ['uid']}, 'bindDN': 'uid=service,cn=users,cn=accounts,dc=myorg,dc=com', 'bindPassword': 'reallysecurepasswordhere', 'insecure': 'false', 'url': 'ldaps://idm.myorg.com:636/dc=myorg,dc=com?uid??(memberof=cn=openshift,cn=accounts,dc=myorg,dc=com)'}]

Я пробовал два десяткавозможности с этим URL.В журналах я всегда получаю:

 I0528 15:23:38.491659       1 ldap.go:122] searching for (&(objectClass=*)(uid=user1))
 E0528 15:23:38.494172       1 login.go:174] Error authenticating "user1" with provider "idm": multiple entries found matching "user1"

Я не понимаю, почему фильтр отображается как (& (objectClass = *) (uid = ... появляется, когда фильтр не анализируетсяправильно, несмотря на то, что URL-адрес, как указано выше, я также проверил master-config.yaml, и он правильный, как мой INI-файл.

Если я запустил ldapsearch, я получу ожидаемые результаты:

$ ldapsearch -x -D "uid=service,cn=users,cn=accounts,dc=myorg,dc=com" -W -H  ldaps://idm.myorg.com -s sub -b "cn=accounts,dc=myorg,dc=com" '(&(uid=user1)(memberof=cn=openshift,cn=groups,cn=accounts,dc=myorg,dc=com))' uid
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <cn=accounts,dc=myorg,dc=com> with scope subtree
# filter: (&(uid=user1)(memberof=cn=openshift,cn=groups,cn=accounts,dc=myorg,dc=com))
# requesting: uid 
#

# user1, users, accounts, myorg.com
dn: uid=user1,cn=users,cn=accounts,dc=myorg,dc=com
uid: user1

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Сервером LDAP является FreeIPA.

Помогите, пожалуйста!

1 Ответ

0 голосов
/ 28 мая 2019

Хорошо, я нашел решение проблемы.

Я предположил ... неправильно ... что запуск playbook openshift-ansible/playbook/openshift-master/config.yml перезапустит API openshift-master.Это не так.

Я заметил это, когда вместо редактирования моего инвентаря ini, где у меня есть этот установленный и запущенный конфиг, я начал редактировать непосредственно на /etc/origin/master/master-config.yaml и использовать master-restart api для перезапуска API.Несколько изменений URL (на самом деле многие некорректные) никогда не запускались.Конфиг загрузил их, но мастер API не перезапускается, поэтому новый конфиг не работает, и я продолжал бить по стене.

...