我目前正在尝试配置一个ldap配置,以进入cloudera管理器,但要实现它我遇到了一些困难。
上下文:ldap用户由扩展person的特定对象类定义。dn看起来像mycorporatecode=,cn=users,dc=example,dc=com,并且person objectclass给定的cn属性被初始化为与mycorporatecode相同的值。ldap用户“groups”也由特定的objectclass定义,但它不扩展除top之外的任何其他objectclass。它没有任何cn属性,dn看起来像myfunctioncode=yyy,cn=functions,dc=example,dc=com。
ldap用户还有一个dn属性userfunctions来列出用户所属的所有“函数”(或“组”)。ldap“group”(或function)有一个dn属性functionusers,用于列出属于该组(或具有该函数)的所有用户的dn
例子:
LDAP User
DN: myCorporateCode=xxx,cn=users,dc=example,dc=com
myCorporateCode: xxx
cn: xxx
userFunctions: myFunctionCode=yyy,cn=functions, dc=example,dc=com
LDAP Function
DN: myFunctionCode=yyy,cn=functions, dc=example,dc=com
myFunctionCode: yyy
functionUsers: myCorporateCode=xxx,cn=users,dc=example,dc=com
当然,ldap模式不能更改。
好吧,当我尝试配置cloudera manager来管理我的公司ldap的身份验证和授权时,因为我不能指定它必须考虑的属性,所以我不能这样做。
我认为这就是问题所在,因为ldap日志向我展示了这样的日志:
Wed Oct 7 07:45:13 2015 Search:
connid = D564, base = cn=functions,dc=example,dc=com,
filter = (myFunctionCode=FBGCLMTEST2*), scope = 2,
attrs = cn objectClass javaSerializedData javaClassName javaFactory javaCodeBase javaReferenceAddress javaClassNames javaRemoteLocation,
IP = x.x.x.x, searchFlags = 0
在应用程序中没有结果(使用ldapsearch可以通过这样的请求访问该函数)
我对用户authentication有相同的行为,但是当它得到一个用mycorporatecode值初始化的cn属性时,authentication就起作用了。
那么,有没有办法告诉cloudera管理器在ldap搜索中必须考虑特定的属性,而不是cn属性,hue就是这样做的?顺便说一下,我对cloudera navigator也有同样的问题。。。
谢谢!
1条答案
按热度按时间c8ib6hqw1#
根据cloudera的说法,没有办法做到这一点:要识别组cloudera manager和navigator,请使用公共名称。再清楚不过了。。。
总之,cloudera提供了一个基于脚本的解决方案,该脚本作为cloudera manager/navigator和ldap/active directory之间的网关执行:http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cm_sg_external_auth.html#cmug_topic_13_9_3_unique_1