设为首页 收藏本站
查看: 481|回复: 0

[经验分享] 使用Tomcat验证LDAP by openDJ

[复制链接]

尚未签到

发表于 2017-1-29 12:29:26 | 显示全部楼层 |阅读模式
  在单位的应用系统,几乎全部都是使用LDAP来进行身份认证的。
所以,我也在家里自己配了一下,感觉还行。

首先,介绍一下什么是LDAP。
其实我完全不知道什么是LDAP,后来发现,其实就是个身份管理数据库,不过只对内部实现。
比如,我们使用FTP服务器的时候,需要输入账号密码,这个就可以绑定LDAP认证。
说白了,LDAP就是一个存储身份数据的数据库。
你登陆的系统只要和这个数据库连上了,就可以用同一个账号密码登陆了。(为啥不用Portal呢?)

首先,去这个地址下载openDJ,一个开源的LDAP服务器。
http://www.forgerock.org/opendj.html
然后,如果你和我一样就是使用windows,那么下载zip,点击setup.bat。

然后下一步下一步就可以了。
(。。。本来想搞点截图的,没这个功能啊。扔到附件上吧。)

选择这将是一台独立的服务器。


按照Example使用。

安装好以后,启动服务。也可以选择导入官方已有的配置文件ldif。


登陆后可以看到openDJ相关的基本信息和运行状态。

点击控制面板的“管理条目”,便可以打开创建时的基dn的管理界面。


新建一个组织单元(OrganizationUnit)People

在里面创建如下用户,密码自理。



dn: uid=bjensen,ou=People,dc=example,dc=com

uid: bjensen

cn: Barbara Jensen

cn: Babs Jensen

mail: bjensen@example.com

  
下面创建一个tomcat的分组,作为最终登陆的角色。
  在tomcat里面。找到conf文件夹。 
注释掉

<!--
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
-->
  还有这个

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
  然后插入

<Realm   className="org.apache.catalina.realm.JNDIRealm"
connectionURL="ldap://localhost:1389"
userPattern="uid={0},ou=people,dc=example,dc=com"
userRoleName="isMemberOf"
roleBase="ou=groups,dc=example,dc=com"
roleName="cn"
roleSearch="(uniqueMember={0})"
/>
  
至于以上字段有什么含义嘛。。

自行理解吧。。其实,在Apache Tomcat的网站上面有详细解释的。

英语不好?百度吧。。。这里略过。
  还有一个地方要更改的,就是tomcat-users.xml
这里就说一句话,把原本注释的部分,取消注释就是了。
  tomcat-users.xml对tomcat来说就是一种身份验证。
  
完成后,来准备用户登录和登录失败的文件:

我们这里假设让用户通过表单的方式通过验证,需要2 个 html 文件: login.html和 loginerr.html。
  


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h1>Login to My Web Application</h1>
<p>
If you have been issued a username and password, key them in here now!
</p>
<form method="POST" action="j_security_check">
Username : <input type="text" size="15" maxlength="25" name="j_username"><br><br>
Password : <input type="password" size="15" maxlength="25" name="j_password"><br><br>
<input value="Login" type="submit">&nbsp;&nbsp;&nbsp;&nbsp;<input value="Clear" type="reset">
</form>
</body>
</html>
 还有错误页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Authentication Error!</title>
</head>
<body>
<h1>Authentication Error!</h1>
<p>
Oops! You either keyed in the wrong username or password.
</p>
<a href="javascript:history.back(1)">Try again ?</a>
</body>
</html>
  我自己登陆时使用的是
  账号:bjensen  《=在openDJ里面的用户名 uid
  密码:123456 《= 在openDJ服务里面输入的
  
对了,还有一点非常重要。
  就是在你的项目的web.xml里面的最后加入以下代码:
  


<security-constraint>
<web-resource-collection>
<web-resource-name>balancer</web-resource-name>
<description> accessible by authenticated users of the tomcat role</description>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<auth-constraint>
<description>These roles are allowed access</description>
<role-name> tomcat </role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>YourWebApp Protected Area</realm-name>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/autherr.html</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description>Only 'tomcat' role is allowed to access this web
application</description>
<role-name> tomcat </role-name>
</security-role>
  知道web.xml的人都知道 web.xml的配置格式是:
  <web-app>
  各种<context-param>
  各种<filter>和<filter-mapping>
  各种<listener>
  各种<servlet>和<servlet-mapping>
  <session-config>
  <welcome-list>
  各种<error-page>
  <tag-lib>
  <resource-ref>
  <security-constrain>
  <login-config>
  <security-role>
  </web-app>
  这样才能正确解析。
  说到这里,启动你的服务试试吧~~!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-334913-1-1.html 上篇帖子: tomcat server.xml中文版(转) 下篇帖子: 解压版本的tomcat配置为windows服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表