首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

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

2012-07-03 
利用OpenDS统一管理部门内部的账号(1)现在要为部门搭建一个绿色的环境,将JIRA、WiKi用统一的账号管理。服务

利用OpenDS统一管理部门内部的账号(1)
现在要为部门搭建一个绿色的环境,将JIRA、WiKi用统一的账号管理。
服务器选择了tomcat6.0,LDAP选择了OpenDS2.2.0,JDK1.6
由于要的是绿色环境,那么把这些东西全部放在一个文件夹下,希望如果要把环境装到别的机器上,只用把这个文件夹COPY走就行。
目录结构如图:


因此要先配置一下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 groupdn: ou=Groups,dc=example,dc=comchangetype: addou: Groupsdescription: Group ouobjectClass: topobjectClass: organizationalUnit# add people oudn: ou=People,dc=example,dc=comchangetype: addou: Peopledescription: PeopleobjectClass: topobjectClass: organizationalUnit# add an authorized user (belongs to the group secure)dn: uid=duke,ou=People,dc=example,dc=comchangetype: addobjectClass: topobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersonuid: dukecn: The Dukesn: DukegivenName: TheuserPassword: password# unauthorized userdn: uid=noaccess,ou=People,dc=example,dc=comchangetype: addobjectClass: topobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersonuid: noaccesscn: No Accesssn: accessgivenName: nouserPassword: noaccess# add user to the webapp groupdn: cn=secure,ou=Groups,dc=example,dc=comchangetype: addobjectClass: topobjectClass: groupOfUniqueNamesuniqueMember: uid=duke,ou=People,dc=example,dc=comcn: 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就也有了权限。




现在,要在自己的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)》:
http://borissun.iteye.com/admin/blogs/781492

热点排行