我正在尝试针对我们的企业Active Directory配置Identity Server(4.1.0) .
我正在使用ReadOnlyLDAPUserStoreManager类 . 以下是用户存储的配置:
<UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager">
<Property name="ReadOnly">true</Property>
<Property name="MaxUserNameListLength">100</Property>
<Property name="ConnectionURL">ldap://host</Property>
<Property name="ConnectionName">ommitted</Property>
<Property name="ConnectionPassword">xxxxxx</Property>
<Property name="passwordHashMethod">PLAIN_TEXT</Property>
<Property name="UserSearchBase">searchbase</Property>
<Property name="UserNameListFilter">(objectClass=user)</Property>
<Property name="UserNameAttribute">sAMAccountName</Property>
<Property name="ReadLDAPGroups">true</Property>
<Property name="GroupSearchBase">groupbase</Property>
<Property name="GroupNameListFilter">(objectClass=group)</Property>
<Property name="GroupNameAttribute">sAMAccountName</Property>
<Property name="MembershipAttribute">memberOf</Property>
<Property name="UserRolesCacheEnabled">false</Property>
<Property name="ReplaceEscapeCharactersAtUserLogin">true</Property>
<Property name="maxFailedLoginAttempt">0</Property>
</UserStoreManager>
我删除了特定的连接详细信息以及UserSearchBase和GroupSearchBase . IS成功启动,我可以看到列出的用户和角色 .
我遇到了以下问题:
-
标识服务器未将分配的角色正确映射到用户 . 即使我的AD使用'memberOf'属性来定义组成员身份,Identity Server也没有分配给特定用户
-
我无法使用LDAP存储中的用户登录Identity Server管理界面 . 当我按以下方式配置Realm / Configuration时:
admin AD_user_name admin everyone jdbc / WSO2CarbonDB org.wso2.carbon.user.core.config.multitenancy.CommonLDAPRealmConfigBuilder org.wso2.carbon.user.core.config.multitenancy.CommonLDAPRealmConfigBuilder </ Property - >
有没有人建议与作为ACtive目录的只读LDAP存储集成?
Update 使用WSO2支持,我建议大家在尝试此特定用例之前等到IS 4.1.1 . 旧版本的产品根本不能很好地工作 . 我会更新,因为我知道更多 .
4 回答
我不知道Active Directory,但我们在OpenLDAP上遇到了类似的问题,我们无法列出用户的角色,原因是,我们的LDAP只是通过使用它的UID将用户与一个组相关联,例如,关于属性memberUid的角色:
但WSO2 org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager期望的方式是:
所以我不得不自定义user.core插件 . 而不是创建查询:
它现在将使用
因此,如果您确实需要自定义它,请扩展ReadOnlyLDAPUserStoreManager并自定义方法getExternalRoleListOfUser(..)
*使用的版本是WSO2 IS 4.1.0和WSO2 ESB 4.6.0 .
我在最近的客户参与中使用了附加配置您是否可以尝试使用此功能,与具有AD读取权限的用户 Build 连接?
此外,最新版本的IS现在支持多个用户存储 . 如果您想要一个活动商店,请务必注释默认商店 . 否则,您需要为每个用户商店添加域名(此处为ad-domain) .
用户存储设置如下所述:http://docs.wso2.org/wiki/display/IS400/Configuring+User+Stores
希望这有帮助,伊莎贝尔 .
请参阅Suresh的以下博客文章 .
http://sureshatt.blogspot.com/2012/07/how-to-connect-wso2-api-manager-to.html
它有一个使用
ReadOnlyLDAPUserStoreManager
的例子 .我希望有所帮助 .
谢谢 .
Update:
我可以确认WSO2 IS 4.1.1解决了这个问题,这可以按预期工作 . 我得出的结论是产品4.1.0扁平化不起作用 .
开发团队已经修复了这些功能中的问题,并且它已在最新版本中修复 .
祝好运 .