LDAP用户存储WSO2 ESB - 管理员用户名

时间:2012-09-18 10:37:09

标签: ldap wso2 wso2esb esb wso2carbon

您好我需要一些帮助来为WSO2 ESB设置LDAP用户存储: 我有我的ldap主持人:ldap://my.domain.ac.uk:389 基于dc=my,dc=domain,dc=ac,dc=uk 用户名密码:Name Surname mypassword

我无法弄清楚如何成功配置WSO2 ESB的user-mgt.xml文件,我得到了#34;

LDAPUserStoreManager Carbon cannot function without an Admin Username

DefaultRealm Cannot create org.wso2.carbon.user.core.ldap.LDAPUserStoreManager . Error is : null"

我对ldap的配置是:

<UserStoreManager class="org.wso2.carbon.user.core.ldap.LDAPUserStoreManager">
            <Property name="ReadOnly">true</Property>
            <Property name="MaxUserNameListLength">100</Property>
            <Property name="ConnectionURL">ldap://my.domain.ac.uk:389</Property>
            <Property name="ConnectionName">cn=Name Surname,ou=Users,dc=my,dc=domain,dc=ac,dc=uk</Property>
            <Property name="ConnectionPassword">mypassword</Property>
            <Property name="UserSearchBase">ou=Users,dc=my,dc=domain,dc=ac,dc=uk</Property>
            <Property name="UserNameListFilter">(objectClass=sAMAccountName)</Property>
            <Property name="UserNameAttribute">uid</Property>
            <Property name="ReadLDAPGroups">false</Property>
            <Property name="GroupSearchBase">ou=Users,dc=my,dc=domain,dc=ac,dc=uk</Property>
            <Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property>
            <Property name="GroupNameAttribute">uid</Property>
            <Property name="MembershipAttribute">member</Property>
            <Property name="UserRolesCacheEnabled">true</Property>
        <Property name="ReplaceEscapeCharactersAtUserLogin">true</Property>
        </UserStoreManager>

任何建议?

感谢

3 个答案:

答案 0 :(得分:2)

在user-mgt.xml中有以下配置元素

<AdminUser>
    <UserName>admin</UserName>
    <Password>admin</Password>
</AdminUser>

确保您的LDAP中有一个名为admin的用户。或者提供LDAP中存在的用户名。 HTH。

答案 1 :(得分:0)

你的AD中是否有uid属性?之前我看到了这个问题,并且它发生了,因为带有此配置的ESB无法找到您在以下位置指定的用户:

<AdminUser>
    <UserName>admin</UserName>
    <Password>admin</Password>
</AdminUser>

您的连接名称使用cn = .....并且您尝试使用uid进行搜索!这是正确的配置?也许你可以发布ldap架构。

答案 2 :(得分:0)

您必须包含以下内容:

<UserManager>
    <Realm>
    <Configuration>
            <AdminRole>LDAP_ADMIN_GROUP</AdminRole>
            <AdminUser>
                 <UserName>LDAP_USER</UserName>
                 <Password></Password>
            </AdminUser>
        <EveryOneRoleName></EveryOneRoleName> <!-- By default users in this role sees the registry root -->
        <Property name="dataSource">jdbc/WSO2CarbonDB</Property>
        <Property name="MultiTenantRealmConfigBuilder">org.wso2.carbon.user.core.config.multitenancy.SimpleRealmConfigBuilder</Property>
    </Configuration>

其中LDAP_ADMIN_GROUP必须是LDAP服务器中存在的组,并且已在WSO2服务器中分配了管理员权限。

LDAP_USER必须属于前面提到的LDAP_ADMIN_GROUP。您不需要提供密码,可以留空。

还要确保您配置的Filter和SearchBase正确,并且用户和组都在此范围内。

您可以在此处找到更多详细信息:

http://docs.wso2.org/wiki/display/ESB450/Configuring+External+User+Stores