JBoss SSO学习笔记4 openldap

本文记录了JBoss SSO与OpenLDAP集成过程中遇到的问题及解决方案,包括如何创建符合JBoss SSO需求的LDAP Schema,以及在sso.cfg.xml中的正确配置。通过示例展示了用户和用户组的OU结构,并强调了启动错误‘No such object’可能的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天测试openldap和jboss sso一直不成功,今天终于搞定,主要就是openldap的schemas。

jboss sso文档中如下写:

 * This implementation supports the following standard LDAP schemas:
 * User Identity Information stored in InetOrgPerson schema
 * Role Information stored in GroupOfUniqueNames schema
但是如何建立针对jboss sso这样的schemas那?

1、一个基本的ldap schema

#base
dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
dc: example
o: Example Company

#opeldap manager user
dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
objectClass: top
cn: Manager

#我们用户的ou
dn: ou=testPeople,dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
ou: testPeople

#一个基本的inetOrgPerson
dn: cn=Test User,ou=testPeople,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: Test User
displayName: Test User
ou: testPeople
sn: Test
uid: test
userPassword:: e01ENX1hWTFSb1oyS0VoemxnVW1kZTNBV2FBPT0=

#我们用户组的ou
dn: ou=roles,dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
ou: roles
 
#用户组为ou=roles的成员
dn: cn=TestGroup,ou=roles,dc=example,dc=com
objectClass: groupOfUniqueNames
objectClass: top
cn: TestGroup
uniqueMember: cn=Test User,ou=testPeople

2、对应上面的schema, jboss-sso.sar/conf/sso.cfg.xml 的配置如下:

<?xml version='1.0' encoding='ISO-8859-1'?>
<jboss-sso>
<identity-management>
    <login>
        <provider id="si:jboss-sso:ldap:login" class="org.jboss.security.idm.ldap.LDAPIdentityProvider">
                <property name="connectionURL">
                jdbc:ldap://localhost:389/dc=example,dc=com?SEARCH_SCOPE:=subTreeScope&secure:=false&concat_atts:=true&size_limit:=10000000</property>
                <property name="username">cn=manager,dc=example,dc=com</property>
                <property name="password">secret</property>
                <!-- ou that contains all your inetOrgPersons -->
                <property name="identityOu">testPeople</property>
                <!-- ou that contains your groups -->
                <property name="roleOu">roles</property>
        </provider>
    </login>
    <!--login>
         <provider id="si:jboss-sso:demo:login" class="org.jboss.security.idm.demo.DemoLoginProvider"/>                         
    </login-->
</identity-management>
    <sso-processor>      
     <processor class="org.jboss.security.saml.JBossSingleSignOn">         
      <property name="trustServer">http://zjftest1.jboss.com:8080/federate/trust</property>      
     </processor>  
    </sso-processor>
</jboss-sso>
启动jboss,测试成功ok!
如果启动jboss的时候报错"No such object"jdbc,说明ldap schema错误,不能找到对应的ou。
jboss启动的时候就会调用setProperties进行属性配置,在LDAPIdentityProvider.java类中,
setProperties方法中调用了方法:this.restoreIdentities(); this.restoreRoles();如果没有正确的ou,启动就会报错!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值