摘要:在信息技术和网络技术飞速发展的时代,企业内部的应用系统越来越多。除了给用户带来不少麻烦外,随着系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。针对于这种情况,统一用户认证、单点登录等概念应运而生,同时不断地被应用到企业应用系统中。当然,openEA开源社区也不例外。

openEA开源社区(ID:openEA)| 出品

小夕  | 编辑

Emma  | 改编

openEA程序猿  | 作者

openEA_WIKI  | 来源

随着开源社区的迅猛发展,参与社区建设的伙伴逐渐增加,去年年底我们推出的公测版已不足以支撑起现状。其实从严格意义上面说,也不算是一个标准的社区,只是几个不同的应用系统(mediawiki,gitlab,osbpm)整合在一起。由于这些系统互相独立,用户在使用每个应用系统之前都必须按照相应的系统身份进行登录,为此必须记住每一个系统的用户名和密码。

为了进一步提供更好的服务,我们重新开发了社区门户,新增社区论坛和社区统一登录服务,打通不同子系统的障碍,统一开源社区用户管理,使得用户一键登录到各个系统,不需要再繁琐的重复登录。

链接ldap服务器工具 ldap连接服务器失败怎么办_链接ldap服务器工具

今天,开源君给大家讲一下,咱们可爱的程序猿是怎样一步步解决社区统一认证问题的。(由于文章边幅限制,开源君仅展开部分内容,更多详情请登录wiki.openea.net,搜索“openEA开源社区统一认证方案”。)

社区统一认证方案设计

链接ldap服务器工具 ldap连接服务器失败怎么办_tomcat_02

(统一认证方案设计图)

1、 CAS作为统一认证服务器;
2、 openLDAP用于统一用户认证,与CAS集成,记录统一认证的所有用户;
3、 用户管理模块放在osbpm上,即包含社区门户首页登录注册以及用户统一管理模块;
4、 知识百科、代码托管、社区论坛、项目服务、培训服务和社区门户与CAS统一认证处理。

CAS服务器搭建

CAS服务器可以作为统一认证中心,实现各大系统的单点登录功能,下面将介绍CAS服务器的搭建步骤,以CAS 5.3的搭建为例:

一、 搭建环境

链接ldap服务器工具 ldap连接服务器失败怎么办_链接ldap服务器工具

搭建CAS服务器需要的环境:java环境、tomcat 8.0、maven 3.3.9。

二、 搭建步骤

链接ldap服务器工具 ldap连接服务器失败怎么办_链接ldap服务器工具

1、 在https://github.com/apereo/cas-overlay-template下载代码;

链接ldap服务器工具 ldap连接服务器失败怎么办_服务器_05

 

2、 下载下来代码之后,cd 到项目根目录,执行 mvn clean install;

链接ldap服务器工具 ldap连接服务器失败怎么办_开源社区_06

3、 把target文件夹中的CAS.war放到tomcat的根目录;

链接ldap服务器工具 ldap连接服务器失败怎么办_服务器_07

 
4、 浏览器能访问tomcat中CAS项目的目录即可成功部署。

链接ldap服务器工具 ldap连接服务器失败怎么办_tomcat_08

LDAP服务搭建

openLDAP是轻型目录访问协议(Lightweight Directory Access Protocol)的自由和开源的实现,在其openLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。

一、 搭建版本

链接ldap服务器工具 ldap连接服务器失败怎么办_链接ldap服务器工具

centos7、openldap 2.4.44、phpldapadmin 1.2.3;

二、 安装openLDAP

链接ldap服务器工具 ldap连接服务器失败怎么办_链接ldap服务器工具

1、 yum 安装相关包;

2、 复制一个默认配置到指定目录下,并授权,这一步一定要做,然后再启动服务,不然生产密码时会报错;
3、 授权给ldap用户,此用户yum安装时便会自动创建;
4、 启动服务,先启动服务,配置后面再进行修改;
5、 查看状态,正常启动则ok。

三、 修改openLDAP配置与安装phpldapadmin

链接ldap服务器工具 ldap连接服务器失败怎么办_链接ldap服务器工具

修改openLDAP配置与安装phpldapadmin涉及源代码,请前往wiki.openea.net查阅哦!

链接ldap服务器工具 ldap连接服务器失败怎么办_tomcat_08

CAS与LDAP集成配置

首先需要保证已经安装了CAS服务器以及openLDAP服务器,这里以CAS5.3为例,初始安装的CAS的账号和密码是在配置文件中的,当然实际项目我们不可能放在配置文件中,这里我们介绍CAS与openLDAP的集成,使得CAS的认证信息来自openLDAP。

一、 重新编译cas以支持LDAP认证

链接ldap服务器工具 ldap连接服务器失败怎么办_链接ldap服务器工具

cd /usr/local/cas-overlay-template-5.3

mvn clean    //清除原来的编译
nano  pom.xml  // 修改编译配置文件
增加以下内容:

<dependency>             <groupId>org.apereo.casgroupId>             <artifactId>cas-server-support-ldapartifactId>             <version>${cas.version}version>        dependency>

保存后重新编译生成cas.war
mvn install   //生成cas.war
重新将cas.war部署到tomcat中。

二、 修改配置文件

链接ldap服务器工具 ldap连接服务器失败怎么办_链接ldap服务器工具

进入tomcat的cas\WEB-INF\classes\application.properties中修改与OpenLDAP集成的配置。

1、 注释掉配置中默认的账号密码:

# CAS Authentication Credentials
# cas.authn.accept.users=casuser::Mellon


2、 新增与OpenLDAP连接的配置:
重启tomcat即可使用OpenLDAP的账户进行登陆了。

# 认证方式
cas.authn.ldap[0].type=AUTHENTICATED
 
  # LDAP服务地址,如果支持SSL,地址为 ldaps://127.0.0.1:689 
  
cas.authn.ldap[0].ldapUrl=ldap://127.0.0.1:389
 
  # 是否使用SSL 
  
cas.authn.ldap[0].useSsl=false
 
  # LDAP中基础DN 
  
cas.authn.ldap[0].baseDn=ou=People,dc=yaobili,dc=com
 
  # 用户名匹配规则,简单的可以只写成uid={user} 
  
cas.authn.ldap[0].searchFilter=(|(uid={user})(mail={user})(mobile={user}))
 
  # CAS用于绑定的DN 
  
cas.authn.ldap[0].bindDn=cn=admin,dc=yaobili,dc=com
 
  # CAS用于绑定的DN的密码 
  
cas.authn.ldap[0].bindCredential=123456
 
  # 登入成功后可以查看到的信息,此条可以不写
cas.authn.ldap[0].principalAttributeList=sn,cn:commonName,givenName,eduPersonTargettedId:SOME_IDENTIFIER


以上是开源社区统一认证方案中CAS与LDAP的搭建与集成,下期开源君将继续为伙伴们介绍openEA门户与各大应用系统间的集成方案哦,欢迎持续关注我们!