MarkLogic LDAP - 为不起作用的角色分配外部名称

时间:2016-05-06 20:48:09

标签: ldap marklogic marklogic-8

我在CentOS 6上使用MarkLogic 8.04版。我正在尝试使用LDAP进行外部身份验证/授权。

我已经创建了一个外部安全认证对象:

name              ldap-config-simple
authentication    ldap
authorization     ldap
ldap server url   ldap://<my server address>:389
ldap base         ou=<mycompany>,dc=<info>,dc=<my org>
ldap attribute    sAMAccountName
ldap default user cn=<user id>,ou=xxxx,ou=yyyyy,dc=<info>,dc=<my org>
ldap bind method  simple

并将其与HTML App服务器相关联(此处是相关设置):

authentication    basic
internal security true
external security ldap-config-simple

我已将LDAP组与角色相关联(以下是相关设置):

external name     cn=marklogic,ou=groups,dc=<info>,dc=<my org>

问题是当我尝试使用LDAP用户访问App服务器时身份验证失败。外部LDAP服务器的日志显示MarkLogic发送的搜索字符串如下所示:

(member=cn=marklogic,ou=groups,dc=<info>,dc=<my org>)

但LDAP服务器期望搜索为:

(memberOf=cn=marklogic,ou=groups,dc=<info>,dc=<my org>)

LDAP服务器管理员向我保证&#34; memberOf&#34;是此类查询的可接受标准。我们使用的是OpenLDAP服务器 - 它是一个非常标准的LDAP安装。有没有办法让MarkLogic发送&#34; memberOf =&#34;搜索而不是&#34;成员=&#34; ?

请注意,当我将LDAP服务器中用户的DN与已配置的MarkLogic用户关联时,我可以通过App Server使用我的LDAP用户ID进行身份验证。但我更喜欢使用基于角色的身份验证,因为这会将访问控制放在LDAP服务器中。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。它现在正在使用上面的配置 - 虽然我没有做任何更改。 MarkLogic支持告诉我,之前的配置可能已被缓存。在调试过程中,我做了一个网络数据包跟踪,看看MarkLogic正在发送什么,看起来它实际上同时请求“memberOf”和“member”组 - 我想LDAP管理员只在日志中看到后者。