本文主要WSO2 IS通过Read-Only方式连接LDAP
1、在WSO2 IS中,user store的是通过Carbon-Home]/repository/conf/user-mgt.xml配置文件来管理的,user-mgt.xml的文件结构如下所示:
<UserManager>
<Realm>
<Configuration>
.................
</Configuration>
<UserStoreManager>
.................
</UserStoreManager>
<AuthorizationManager>
.................
</AuthorizationManager>
</Realm>
</UserManager>
2、先观察<configuration>部分,
<Configuration>
<AddAdmin>true</AddAdmin>
<AdminRole>admin</AdminRole>
<AdminUser>
<UserName>37Ink</UserName>
<Password></Password>
</AdminUser>
<EveryOneRoleName>everyone</EveryOneRoleName> <!-- By default users in this role sees the registry root -->
<Property name="dataSource">jdbc/WSO2CarbonDB</Property>
</Configuration>
<AddAdmin>true</AddAdmin>设置是否可以添加admin角色,此处需要设置为true;
<AdminRole>admin</AdminRole>制定admin对应的管理员权限,默认是admin,也可以是数据库中其他的角色;、
<AdminUser>配置默认的管理员;
<UserName>37Ink</UserName>是管理员的用户名,这个用户名必须是LDAP中已经存在的用户;
<Password>部分不需要填写,直接留空即可;
其他的<Configuration>保持原样即可。
3、接下来看<UserStoreManager>部分,在WSO2 IS的初始user-mgt.xml文件中,提供了四种连接方式样例,分别是Read-Write LDAP、JDBC、Read-Only LDAP、ActiveDirectory,默认开启的是Read-Write LDAP,连接的是本地的LDAP,接下来配置Read-Only方式连接外部的LDAP,配置完的内容如下:
<UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager">
<Property name="TenantManager">org.wso2.carbon.user.core.tenant.CommonHybridLDAPTenantManager</Property>
<Property name="ReadOnly">true</Property>
<Property name="Disabled">false</Property>
<Property name="MaxUserNameListLength">100</Property>
<Property name="ConnectionURL">ldap://10.82.81.163:389</Property>
<Property name="ConnectionName">cn=admin,dc=example,dc=com</Property>
<Property name="ConnectionPassword">123456</Property>
<Property name="passwordHashMethod">PLAIN_TEXT</Property>
<Property name="UserSearchBase">dc=example,dc=com</Property>
<Property name="UserNameListFilter">(objectClass=person)</Property>
<Property name="UserNameSearchFilter">(&(objectClass=person)(cn=?))</Property>
<Property name="UserNameAttribute">cn</Property>
<Property name="ReadGroups">true</Property>
<Property name="GroupSearchBase">dc=example,dc=com</Property>
<Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property>
<Property name="GroupNameSearchFilter">(&(objectClass=groupOfNames)(cn=?))</Property>
<Property name="GroupNameAttribute">cn</Property>
<Property name="SharedGroupNameAttribute">cn</Property>
<Property name="SharedGroupSearchBase">ou=SharedGroups,dc=wso2,dc=org</Property>
<Property name="SharedGroupNameListFilter">(objectClass=groupOfNames)</Property>
<Property name="SharedTenantNameListFilter">(objectClass=organizationalUnit)</Property>
<Property name="SharedTenantNameAttribute">ou</Property>
<Property name="SharedTenantObjectClass">organizationalUnit</Property>
<Property name="MembershipAttribute">member</Property>
<Property name="UserRolesCacheEnabled">true</Property>
<Property name="ReplaceEscapeCharactersAtUserLogin">true</Property>
<Property name="MaxRoleNameListLength">100</Property>
<Property name="MaxUserNameListLength">100</Property>
<Property name="SCIMEnabled">false</Property>
</UserStoreManager>
ConnectionURL是ldap服务器的ip;
ConnectionName是ldap服务器的连接用户名;
ConnectionPasswordldap服务器的连接用户名对应的密码;
UserSearchBase更改为ldap中user对应DN;
UserNameSearchFilter需要将uid改为cn,如果所使用的为uid则不需要;
UserNameAttribute需要将uid改为cn,如果所使用的为uid则不需要;
ReadGroups通过这个属性可以设置是否读取ldap中的group,如果设置为false,则下面的group操作可不做;
GroupSearchBase更改为ldap中group对应的cDN;
其他属性保持不变即可。
4、将WSO2 IS重启之后,就可以通过之前设置的LDAP用户直接登录WSO2 IS了。
本文详述如何以Read-Only方式配置WSO2 Identity Server(WSO2 IS)连接LDAP用户存储。内容包括user-mgt.xml配置文件的修改,如启用Read-Only LDAP连接,设置admin角色,指定LDAP服务器的IP、连接用户名、密码以及用户和组的DN。重启WSO2 IS后,即可使用LDAP中的用户进行登录。
1188

被折叠的 条评论
为什么被折叠?



