Active directory 如何在WSO2 Identity Server 4.5中将新用户添加到外部用户存储(AD)?

Active directory 如何在WSO2 Identity Server 4.5中将新用户添加到外部用户存储(AD)?,active-directory,wso2,wso2is,Active Directory,Wso2,Wso2is,我正在尝试将用户添加到后端广告。 但是,如果我指定密码,我总是会得到“密码不符合系统要求”。请重试。“(我可以将用户添加到广告服务器上具有相同pwd的广告中) 然后我尝试了“向用户询问密码”,但没有指定密码。创建失败,出现以下消息: 无法添加用户test.com/testadd。错误是:凭据无效。凭证必须是非null字符串,格式如下:null 虽然我确信ad证书已添加到我能找到的所有密钥库中 那么接下来我能做什么呢 这是我的user-mgt.xml <UserManager> <

我正在尝试将用户添加到后端广告。 但是,如果我指定密码,我总是会得到“密码不符合系统要求”。请重试。“(我可以将用户添加到广告服务器上具有相同pwd的广告中)

然后我尝试了“向用户询问密码”,但没有指定密码。创建失败,出现以下消息:

无法添加用户test.com/testadd。错误是:凭据无效。凭证必须是非null字符串,格式如下:null

虽然我确信ad证书已添加到我能找到的所有密钥库中

那么接下来我能做什么呢

这是我的user-mgt.xml

<UserManager>
<Realm>
    <Configuration>
    <AddAdmin>true</AddAdmin>
            <AdminRole>admin</AdminRole>
            <AdminUser>
                 <UserName>admin</UserName>
                 <Password>admin</Password>
            </AdminUser>
        <EveryOneRoleName>everyone</EveryOneRoleName> <!-- By default users in this role sees the registry root -->
        <Property name="dataSource">jdbc/WSO2CarbonDB</Property>
    </Configuration>

<UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager">
        <!-- .... -->
        <!-- I didn't change this part -->
</UserStoreManager>

<UserStoreManager class="org.wso2.carbon.user.core.ldap.ActiveDirectoryUserStoreManager">
        <Property name="TenantManager">org.wso2.carbon.user.core.tenant.CommonHybridLDAPTenantManager</Property>
        <Property name="defaultRealmName">test.com</Property>
        <Property name="DomainName">test.com</Property>
        <Property name="kdcEnabled">false</Property>
        <Property name="ConnectionURL">ldaps://10.20.112.213:636</Property>
        <Property name="ConnectionName">CN=Adaccount,CN=Users,DC=test,DC=com</Property>
        <Property name="ConnectionPassword">password@123</Property>
        <Property name="UserSearchBase">CN=Users,DC=test,DC=com</Property>
        <Property name="UserEntryObjectClass">person</Property>
        <Property name="UserNameAttribute">sAMAccountName</Property>
        <Property name="UserNameListFilter">(objectClass=person)</Property>
        <Property name="UserNameSearchFilter">(&amp;(objectClass=person)(sAMAccountName=?))</Property>
        <Property name="ReadLDAPGroups">true</Property>
        <Property name="EmptyRolesAllowed">true</Property>
        <Property name="GroupSearchBase">CN=Users,DC=test,DC=com</Property>
        <Property name="GroupEntryObjectClass">group</Property>
        <Property name="GroupNameAttribute">cn</Property>
        <Property name="MembershipAttribute">memberOf</Property>
        <Property name="GroupNameListFilter">(objectClass=group)</Property>
        <Property name="GroupNameSearchFilter">(&amp;(objectClass=group)(cn=?))</Property>
        <Property name="UserRolesCacheEnabled">true</Property>
        <Property name="Referral">follow</Property>
        <Property name="isADLDSRole">false</Property>
        <Property name="BackLinksEnabled">false</Property>
        <Property name="maxFailedLoginAttempt">0</Property>
    </UserStoreManager>
    <AuthorizationManager
        class="org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager">
        <Property name="AdminRoleManagementPermissions">/permission</Property>
    <Property name="AuthorizationCacheEnabled">true</Property>
    </AuthorizationManager>
</Realm>

真的
管理
管理
管理
每个人
jdbc/WSO2CarbonDB
org.wso2.carbon.user.core.tenant.CommonHybridlDaptentManager
test.com
test.com
假的
ldaps://10.20.112.213:636
CN=Adaccount,CN=Users,DC=test,DC=com
password@123
CN=用户,DC=测试,DC=com
人
sAMAccountName
(objectClass=person)
(&;(objectClass=person)(sAMAccountName=?)
真的
真的
CN=用户,DC=测试,DC=com
组
cn
成员
(objectClass=group)
(&;(objectClass=group)(cn=?)
真的
跟随
假的
假的
0
/许可
真的

我想可能是regex密码模式有问题。根据您的配置,regex模式不是在config中定义的。可能是,WSO2IS使用一些默认模式。请尝试配置它们并查看。。。我可以在默认的user-mgt.xml文件中看到以下内容。尝试配置它们并进行检查

        <Property name="PasswordJavaScriptRegEx">^[\S]{5,30}$</Property>
    <Property name="ServicePasswordJavaRegEx">^[\\S]{5,30}$</Property>
    <Property name="ServiceNameJavaRegEx">^[\\S]{2,30}/[\\S]{2,30}$</Property>
        <Property name="UsernameJavaScriptRegEx">^[\S]{3,30}$</Property>
        <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
        <Property name="RolenameJavaScriptRegEx">^[\S]{3,30}$</Property>
        <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property>
^[\S]{5,30}$
^[\\S]{5,30}$
^[\\S]{2,30}/[\\S]{2,30}$
^[\S]{3,30}$
[a-zA-Z0-9.|-|/][3,30}$
^[\S]{3,30}$
[a-zA-Z0-9.|-|/][3,30}$

谢谢,密码验证已通过,但我仍然无法创建用户。在日志中,我看到LDAP错误代码53(将不执行)。我已确认密码有效,我正在通过LDAPS访问ad。知道为什么会出现此错误代码吗?通常,这是在使用“不使用LDAPS”时生成的。也可能是因为您用于连接LDAP的用户没有足够的权限。这意味着由连接名称定义的“CN=Adaccount,CN=Users,DC=test,DC=com”必须具有创建用户和更改用户密码的权限。。。请你也核实一下好吗