CAS 5.3 的安装 与 对接LDAP 和 Redis

CAS安装

这里选择安装CAS的5.3版本

进入以下地址,下载模版。

https://github.com/apereo/cas-overlay-template/tree/5.3

将下载的压缩包解压,打开控制台终端,并进入解压后的文件夹路径。运行打包命令,即可生成一个可用的war包。

./build.cmd package

将打包完成的war包放入tomcat中,访问http://[ip]:[port]/cas,即可看到CAS登入界面。

支持https
生成keystore

使用java自带的keystore生成keystore文件,需要注意的是**-dname参数中CN**的值必须是域名,且可以访问到cas服务器。

keytool -genkey -alias cas -keyalg RSA -keysize 2048 -k
eypass 123456 -storepass 123456 -keystore D:/cas.keystore -dname "CN=cas.top,OU=lanniu.top,O=lanniu,L=NanJing,ST=NanJing
,C=CN"

可以修改hosts文件,使得该域名可以被访问到。修改hosts文件后,需要在控制台运行刷新命令使域名生效。

ipconfig /flushdns

将生成好的配置文件上传到cas服务器中,备用。

配置tomcat的server.xml

修改server.xml文件,增加一个连接,需要增加的内容如下。注意其中的信息要与生成keystore时填写的信息保持一致。

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/root/cas.keystore" certificateKeystoreType="JKS" certificateKeystorePassword="123456" type="RSA" />
        </SSLHostConfig>
    </Connector>

修改完毕后,重启tomcat,在浏览器中输入https://[域名]:8443/cas,可以看到如下界面。

与LDAP对接

可以参考官方文档 https://apereo.github.io/cas/5.3.x/installation/LDAP-Authentication.html#ldap-authentication

进入cas_template文件夹路径,找到pom.xml文件并打开,在其中找到这样一个注释。

<!--
    ...Additional dependencies may be placed here...
-->

在注释的上方添加如下的依赖,这个依赖就是为了使得cas可以支持ldap。

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

添加依赖并保存后运行打包命令,等待重新生成war包。

./build.cmd package

将war包上传至服务器,替换旧的war包,并重启tomcat。访问https://[域名]:8443/cas,查看cas是否成功启动。

如果启动失败推荐清空maven仓库,重新下载包,重新生成war包,推荐使用可以翻墙的主机。

接下来配置LDAP的连接属性,进入tomcat的webapp文件夹下,如果上面步骤中打包的war包名字就是cas,那么在进入 webapps/cas/WEB-INF/classes 目录下,修改 application.properties 文件。在文件的最下方就是CAS认证相关的属性,首先注释掉CAS写死的用户名和密码,然后配置LDAP连接属性。

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

# 认证方式
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=dc=example,dc=org
# 用户名匹配规则,简单的可以只写成uid={user}
cas.authn.ldap[0].searchFilter=(|(uid={user})(mail={user})(mobile={user}))
# CAS用于绑定的DN
cas.authn.ldap[0].bindDn=cn=admin,dc=example,dc=org
# CAS用于绑定的DN的密码
cas.authn.ldap[0].bindCredential=admin
# 登入成功后可以查看到的信息,此条可以不写
cas.authn.ldap[0].principalAttributeList=sn,cn:commonName,givenName,eduPersonTargettedId:SOME_IDENTIFIER

以上的属性已可以支持LDAP成功对接,完整的属性列表如下,每个属性的具体含义可以查看官网 。

https://apereo.github.io/cas/5.3.x/installation/Configuration-Properties-Common.html#ldap-connection-settings
cas.authn.ldap[0].principalAttributeList=sn,cn:commonName,givenName,eduPersonTargettedId:SOME_IDENTIFIER
cas.authn.ldap[0].collectDnAttribute=false
cas.authn.ldap[0].principalDnAttributeName=principalLdapDn
cas.authn.ldap[0].allowMultiplePrincipalAttributeValues=true
cas.authn.ldap[0].allowMissingPrincipalAttributeValue=true
cas.authn.ldap[0].credentialCriteria=

cas.authn.ldap[0].ldapUrl=ldap://127.0.0.1:389
cas.authn.ldap[0].bindDn=cn=admin,dc=example,dc=org
cas.authn.ldap[0].bindCredential=admin

cas.authn.ldap[0].poolPassivator=NONE
cas.authn.ldap[0].connectionStrategy=
cas.authn.ldap[0].providerClass=org.ldaptive.provider.unboundid.UnboundIDProvider
cas.authn.ldap[0].connectTimeout=PT5S
cas.authn.ldap[0].trustCertificates=
cas.authn.ldap[0].keystore=
cas.authn.ldap[0].keystorePassword=
cas.authn.ldap[0].keystoreType=JKS
cas.authn.ldap[0].minPoolSize=3
cas.authn.ldap[0].maxPoolSize=10
cas.authn.ldap[0].validateOnCheckout=true
cas.authn.ldap[0].validatePeriodically=true
cas.authn.ldap[0].validatePeriod=PT5M
cas.authn.ldap[0].validateTimeout=PT5S
cas.authn.ldap[0].failFast=true
cas.authn.ldap[0].idleTime=PT10M
cas.authn.ldap[0].prunePeriod=PT2H
cas.authn.ldap[0].blockWaitTime=PT3S
cas.authn.ldap[0].useSsl=false
cas.authn.ldap[0].useStartTls=false
cas.authn.ldap[0].responseTimeout=PT5S
cas.authn.ldap[0].allowMultipleDns=false
cas.authn.ldap[0].allowMultipleEntries=false
cas.authn.ldap[0].followReferrals=false
cas.authn.ldap[0].binaryAttributes=objectGUID,someOtherAttribute
cas.authn.ldap[0].name=
cas.authn.ldap[0].type=AUTHENTICATED
cas.authn.ldap[0].baseDn=dc=example,dc=org
cas.authn.ldap[0].searchFilter=(|(uid={user})(mail={user})(mobile={user}))

登入成功后,可以看到成功界面。

与Redis对接

进入cas_template文件夹路径,找到pom.xml文件并打开,在其中找到这样一个注释。

<!--
    ...Additional dependencies may be placed here...
-->

在注释的上方添加如下的依赖,这个依赖就是为了使得cas可以使用redis作为服务和tickets缓存。

<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-redis-ticket-registry</artifactId>
    <version>${cas.version}</version>
</dependency>
<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-redis-service-registry</artifactId>
    <version>${cas.version}</version>
</dependency>

添加依赖并保存后运行打包命令,等待重新生成war包。

./build.cmd package

将war包上传至服务器,替换旧的war包,并重启tomcat。访问https://[域名]:8443/cas,查看cas是否成功启动。

接下来配置redis的连接属性,进入tomcat的webapp文件夹下,如果上面步骤中打包的war包名字就是cas,那么在进入 webapps/cas/WEB-INF/classes 目录下,修改 application.properties 文件。在文件的最下方添加以下内容。

  • 未给redis设置密码
cas.ticket.registry.redis.host=127.0.0.1  
cas.ticket.registry.redis.database=0  
cas.ticket.registry.redis.port=6379 
  • 给redis设置了密码
cas.ticket.registry.redis.host=127.0.0.1  
cas.ticket.registry.redis.database=0  
cas.ticket.registry.redis.port=6379  
cas.ticket.registry.redis.password=[设置的密码]
cas.ticket.registry.redis.timeout=2000 
cas.ticket.registry.redis.useSsl=false 
cas.ticket.registry.redis.usePool=false

在服务器端重启Tomcat,等待重启完成后,访问http://[域名]:[port]/cas,并输入用户名和密码,点击登入,等待验证通过。通过redis客户端可以查看到当前缓存的内容。删除其中内容,并重新访问http://[域名]:[port]/cas出现登入框,代表配置成功。

本文中CAS的配置文件 点击查看

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Cas 5.3 pac4j是一个用于身份验证和授权的Java库。它提供了一种简单且可扩展的方式来集成CAS(Central Authentication Service)协议和pac4j库,用于集中身份验证。CAS是一种单点登录协议,它允许用户在一次登录后访问多个应用程序而无需再次登录。pac4j是一个Java库,用于实现身份验证和授权的安全框架。 使用Cas 5.3 pac4j,开发人员可以轻松地实现CAS协议和pac4j库的集成,并集中管理用户的身份验证和授权。它提供了多种身份验证方法,包括用户名密码,OAuth,OpenID等。开发人员只需配置相应的身份验证器即可使用这些方法。 该库还提供了丰富的授权机制,允许开发人员定义访问控制规则,以决定哪些用户可以访问特定资源。这些规则可以基于用户角色,用户组,IP地址等进行配置,并通过简单的配置文件进行管理。 Cas 5.3 pac4j还支持自定义的身份验证器和授权器,使开发人员可以根据自己的需要进行扩展和定制。此外,它还提供了易于使用的API,方便开发人员在应用程序中使用身份验证和授权功能。 总之,Cas 5.3 pac4j提供了一个强大而灵活的身份验证和授权解决方案,帮助开发人员快速集成CAS协议和pac4j库,并集中管理用户的身份验证和授权。 ### 回答2: Cas 5.3是一个开源的单点登录(SSO)协议,用于统一认证和授权系统。Pac4j是一个在Cas 5.3上构建的Java安全库。 Cas是“Central Authentication Service”的缩写,主要用于企业或组织中的应用程序和服务之间的身份验证问题。Cas 5.3Cas协议的一个版本,它提供了多种身份验证方式,包括用户名/密码、第三方账号、Token和验证码等。它的核心原理是通过一个中央认证服务器来验证用户的身份,并将认证结果传递给各个应用程序,实现了用户在一个应用中登录后,其身份在其他应用中的自动认证。 Pac4j是一个开源的Java安全库,它在Cas 5.3上提供了更强大和灵活的安全功能。Pac4j可以集成多种身份验证方式,包括Cas、OAuth、SAML、OpenID Connect、LDAP和JWT等,并能够与各种框架(如Spring、Play、Vert.x)无缝集成。Pac4j还支持身份授权和权限管理,可以根据用户的角色和权限对资源进行访问控制。 Cas 5.3和Pac4j的结合可以实现一个健全的身份认证和授权体系。它们可以应用于各种场景,如企业内部应用的统一登录、多租户系统的身份管理和第三方应用的认证授权等。通过使用Cas 5.3和Pac4j,可以大大简化安全开发的复杂性,提高系统的安全性和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值