为WebLogic Server配置基于OID的外部LDAP认证

介质版本

  • Oracle WebLogic Server 10.3.3
  • Oracle Identity Management 11.1.1.3.0

准备工作

  • 创建WebLogic Domain,过程略
  • 创建Oracle Identity Mangement实例,过程略

配置步骤

1. 启动WebLogic Domain

2. 添加认证提供程序

SecurityProvider

 

OIDProvider

3. 将所有安全提供程序的控制标记设置为“SUFFICENT”并且重新对安全提供程序进行排序

ControlFlag

ProviderOrder

4. 配置安全提供程序

ConfigProvider

连接信息:根据OID基本信息填写

用户信息

用户基本DN(User Base DN):cn=Users,dc=cn,dc=oracle,dc=com

所有用户筛选器(All Users Filter):(&(uid=*)(objectclass=person))

名称筛选器中的用户(User From Name Filter):(&(uid=%u)(objectclass=person))

用户名属性(User Name Attribute):uid

将检索到的用户名用作主用户(Use Retrieved User Name as Principal):必选

组信息

组基本DN(Group Base DN):cn=Groups,dc=cn,dc=oracle,dc=com

5. 修改jps-config.xml(可选)

如果在能%DOMAIN_HOME%/config/fmwconfig找到jps-config.xml文件,则进行如下修改,加入黑体部分:

<!– JPS WLS LDAP Identity Store Service Instance –>
<serviceInstance name="idstore.ldap" provider="idstore.ldap.provider">
<property name="idstore.config.provider" value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"/>
<property name="username.attr" value="uid"/>
<property name="user.login.attr" value="uid"/>

<property value="oracle.security.idm.providers.stdldap.JNDIPool" name="CONNECTION_POOL_CLASS"/><!–我所使用的版本中已经加好此属性,如果没有加上此属性可以提高性能–>
</serviceInstance>

6. 重新启动Admin Server

测试

进入WebLogic Console,查看用户:

User 

我们可以看到用户orcladmin,这个用户就是OID的管理员,但是在WebLogic Server中,这个用户只是一个普通用户,他并没有权限登录WebLogic Server Console,我们如何使这个用户也成为WebLogic Server的管理员呢?我们只需要在OID中建立Administrators,然后将orcladmin加入这个组即可,步骤如下:

1. 创建administrators.ldif文件,其内容如下:

dn: cn=Administrators, cn=Groups, dc=cn, dc=oracle, dc=com
displayname: IDM Administrators
objectclass: top
objectclass: groupOfUniqueNames
objectclass: orclGroup
uniquemember: cn=orcladmin,cn=users,dc=cn,dc=oracle,dc=com
cn: Administrators
description: Administrators Group for IDM Domain in OID

2. 执行命令ldapadd,此命令位于%IDM_HOME%/bin目录下

ldapadd –h localhost -p 3060 -D "cn=orcladmin" -w welcome1 -c -v -f administrators.ldif

3. 测试

使用orcladmin/welcome1登录WebLogic Server Console,成功!

(完)