利用OpenDS统一管理部门内部的账号(1)

现在要为部门搭建一个绿色的环境,将JIRA、WiKi用统一的账号管理。
服务器选择了tomcat6.0,LDAP选择了OpenDS2.2.0,JDK1.6
由于要的是绿色环境,那么把这些东西全部放在一个文件夹下,希望如果要把环境装到别的机器上,只用把这个文件夹COPY走就行。
目录结构如图:
[img]http://dl.iteye.com/upload/attachment/320205/24687ccd-2523-3464-a19f-a185340509bb.jpg[/img]

因此要先配置一下TOMCAT,让tomcat去一个相对路径找JDK,在TOMCAT_HOME/bin 下编辑catalina.bat。在里边加上一句
set JAVA_HOME=..\..\jdk


安装OpenDS的步骤:http://www.opends.org/ 通过Java Web Start执行QuickSetup(必须要有JDK,在windows上可行,在Ubuntu上没执行)。

OpenDS服务器配置好以后,双击OpenDS_HOME/bat/control-panel.bat
打开控制台,启动服务。

把一下内容保存成一个ldif文件,如E:\environment\OpenDS\ldif\duke.ldif
# add group
dn: ou=Groups,dc=example,dc=com
changetype: add
ou: Groups
description: Group ou
objectClass: top
objectClass: organizationalUnit

# add people ou
dn: ou=People,dc=example,dc=com
changetype: add
ou: People
description: People
objectClass: top
objectClass: organizationalUnit

# add an authorized user (belongs to the group secure)
dn: uid=duke,ou=People,dc=example,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: duke
cn: The Duke
sn: Duke
givenName: The
userPassword: password

# unauthorized user
dn: uid=noaccess,ou=People,dc=example,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: noaccess
cn: No Access
sn: access
givenName: no
userPassword: noaccess

# add user to the webapp group
dn: cn=secure,ou=Groups,dc=example,dc=com
changetype: add
objectClass: top
objectClass: groupOfUniqueNames
uniqueMember: uid=duke,ou=People,dc=example,dc=com
cn: secure


然后打开CMD,到Opends\bin下输入ldapmodify -p 389 -a -D "cn=Directory Manager" -w password -f E:\environment\OpenDS\ldif\duke.ldif

这样就为OpenDS添加了一个权限组:secure 两个用户:duke、noaccess ,并且在secure这个权限组里添加了duke。

可以在控制界面中,在People下添加用户,比如"boris",添加时要选择属性命名,选择uid。然后在secure组成员里添加uid=boris,ou=People,dc=example,dc=com
这样,boris就也有了权限。

[img]http://dl.iteye.com/upload/attachment/322445/b60bf41f-484f-3751-884c-154e4d2bdc97.jpg[/img]


现在,要在自己的web project中调用OpenDS的权限验证,先拿一个最简单的project试验出来再说。

首先要修改tomcat的server.xml
在<Engine></Engine>中间加入
<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
connectionName="cn=Directory Manager"
connectionPassword="boris"
connectionURL="ldap://localhost:389"
userPattern="uid={0},ou=people,dc=example,dc=com"
roleBase="ou=groups,dc=example,dc=com"
roleName="cn"
roleSearch="(uniqueMember={0})"/>


第5行中的userPattern定义了验证用户的格式,这里是以uid开头。但是在OpenDS建立用户的时候,默认的是以cn开头的,建立时需要注意。

在TOMCAT_HOME/webapps下建立一个最简单的web project,只有一个index.html 内容是hello。

然后修改WEB-INF下的web.xml 如下:
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
<security-role>
<role-name>secure</role-name>
</security-role>
<!-- grant access to all users that possess the role 'secure' and deny all others -->
<security-constraint>
<web-resource-collection>
<web-resource-name>opendsauthtest</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>secure</role-name>
</auth-constraint>
</security-constraint>
<!-- declare the app uses FORM based authentication using your newly created OpenDS realm -->
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>OpenDS</realm-name>
</login-config>
</web-app>


这里并不完全理解,主要注意<role-name>secure</role-name>,这就是要连接OpenDS的权限组的名称。

做完这些,启动tomcat 输入http://localhost:8080/test
弹出输入密码的页面,输入boris boris 确定,进入到index.html页面。

《利用OpenDS统一管理部门内部的账号(2)》:
[url]http://borissun.iteye.com/admin/blogs/781492[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值