LDAP身份验证-OpenShift-OKD

LDAP身份验证-OpenShift-OKD,ldap,openshift,redhat,freeipa,okd,Ldap,Openshift,Redhat,Freeipa,Okd,我部署了一个新的OKD集群(3.11),作为身份提供者,我选择了LDAPPasswordIdentityProvider 配置如下所示: openshift_master_identity_providers=[{'name': 'idm', 'challenge': 'true', 'login': 'true', 'kind': 'LDAPPasswordIdentityProvider', 'attributes': {'id': ['dn'], 'email': ['mail'], 'n

我部署了一个新的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
$ldapsearch-x-D“uid=service,cn=users,cn=accounts,dc=myorg,dc=com”-W-Hldaps://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
输入LDAP密码:
#扩展LDIF
#
#LDAPv3
#带作用域子树的基
#筛选器:(&(uid=user1)(memberof=cn=openshift,cn=groups,cn=accounts,dc=myorg,dc=com))
#请求:uid
#
#user1,users,accounts,myorg.com
dn:uid=user1,cn=users,cn=accounts,dc=myorg,dc=com
uid:user1
#搜索结果
搜索:2
结果:0成功
#numResponses:2
#货币:1
LDAP服务器是FreeIPA


请帮忙!

好的,我找到了问题的解决方案

我错误地认为运行playbook
openshift-ansible/playbook/openshift-master/config.yml将重新启动openshift-master API。
没有

当我开始直接在
/etc/origin/master/master config.yaml
上编辑并使用
master restart api
重新启动api时,我注意到了这一点。
有几个URL更改(实际上很多不正确)从未运行过。Config上传了它们,但主api没有重新启动,因此新的配置没有到位,我一直在碰壁。

可能是URL中的双重
ldaps://idm.myorg.com:636/dc=myorg,dc=com?uid???(memberof=cn=openshift,cn=accounts,dc=myorg,dc=com)
也许可以试试
ldaps://idm.myorg.com:636/dc=myorg,dc=com?uid?(memberof=cn=openshift,cn=accounts,dc=myorg,dc=com)
或显式添加
sub
ldaps://idm.myorg.com:636/dc=myorg,dc=com?uid?sub?(memberof=cn=openshift,cn=accounts,dc=myorg,dc=com)
您还可以尝试限制URL的
basedn
部分,如
ldaps://idm.myorg.com:636/cn=openshift,cn=groups,cn=accounts,dc=myorg,dc=com?uid
然后删除过滤器我会的,谢谢你的回复。实际上我已经尝试了所有的方法,都只使用了一个?和显式sub。两者都给出了相同的结果。I还尝试了basedn上的组,但我没有找到任何条目。我现在想知道我何时运行openshift ansible/playbooks/openshift master/config.yml…这会重新启动主api吗???有人吗?我认为应该,但现在我开始想没有