我部署了一个新的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: 1LDAP服务器为FreeIPA。
请帮帮我!
发布于 2019-05-29 03:29:01
好了,我找到了问题的解决方案。
我以为..。错误地..。运行playbook openshift-ansible/playbook/openshift-master/config.yml将重新启动openshift-master API。事实并非如此。
当我开始直接在/etc/origin/master/master-config.yaml上编辑并使用master-restart api重新启动API时,我注意到了这一点,而不是编辑我的ini清单并运行配置。一些URL更改(实际上很多是不正确的)从未运行过。Config上传了它们,但是主api没有重新启动,所以新的config没有到位,我一直在碰壁。
https://stackoverflow.com/questions/56347280
复制相似问题