logo资料库

Windows 环境CAS 5.1.X 单点登录系统配置试验.pdf

第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
资料共35页,剩余部分请下载后查看
Windows 环境 CAS 5.1.X 单点登录系统配置试验 在Win XP 32位本机环境,利用CAS 5.1.X,对LDAP、JDBC认证机制的多种认证模式进行了单点 登录系统(SSO)的配置试验,并采用Java和Python两种客户端作了测试,同时给出了配置流程、以 及个人在20天的配置试验过程中遇到的问题和认识,仅供参考。 1. 采用软件 软 件 JDK 8 Tomcat 9 Cas 5.1.X 下载地址 http://rj.baidu.com/soft/detail/14459.html http://tomcat.apache.org/download-90.cgi https://apereo.github.io/cas/5.1.x/index.html (采用 Maven Overlay) https://github.com/apereo/cas-overlay-template Maven 3.5.0 http://maven.apache.org/docs/3.5.0/release-notes.html OpenLDAP http://www.openldap.org/software/download/ (LDAP 数据库) https://www.userbooster.de/download/openldap-for-windows.aspx HSQLDB 2.3.4 (关系数据库) http://hsqldb.org/ Java Cas 示例客户端 https://github.com/cas-projects/cas-sample-java-webapp Python Flask-Cas 客户端 https://github.com/cameronbwhite/Flask-CAS 2. 配置试验流程 1)域名映射; 2)安装 JDK 并配置系统环境变量; 3)安装 Tomcat,创建密钥库文件、导出信任证书,在 JRE 及浏览器中导入信任证书,然后在 Tomcat \conf 目录下的 server.xml 中添加 HTTPS 配置信息,启动 Tomcat HTTPS 服务; 4)编译生成 CAS WAR 包。下载并解包 cas-overlay-template,在 pom.xml 的中添加依 赖包信息,修改\etc\cas\config 下的 cas.properties 文件,然后 Maven 编译生成 cas.war; 5)部署 WAR 包 cas.war 到 Tomcat 的 \webapps\ 下,然后启动 Tomcat 实施 CAS 静态认证测试; 6)启动数据库服务。分别安装 OpenLDAP、HSQLDB 数据库,拟定数据结构,将测试数据导入数据库, 启动 OpenLDAP、HSQLDB 数据库服务; 7) CAS 认证配置。编辑\tomcat\webapps\cas\WEB-INF\classes 下的 application.properties 文件, 配置 CAS,然后启动 Tomcat 实施 CAS 动态认证测试; 8) 客户端应用单点登录测试。安装 CAS 客户端程序,在\tomcat\webapps\cas\WEB-INF\classes\services 下添加 JSON 格式客户端注册文件,客户端单点登录并返回用户认证的属性信息。 · Cas 5通过Spring Boot框架作了重构,配置比之前版本简单了,因此不要让网上大量的早期配置方法资料引入 误区,目前Cas 5配置最好的参考资料在其官网:https://apereo.github.io/cas/5.1.x/index.html 1
3. 配置试验 3.1 域名映射 打开 C:\WINDOWS\system32\drivers\etc 下的 hosts 文件,为本机地址 127.0.0.1/localhost 添 加服务器端域名(server.hds.org),以及两个客户端的域名(app1.hds.org、app2.hds.org)。 3.2 安装 JDK 8 下载并安装 JDK 8,安装完毕配置 Windows 系统环境变量,这样执行 Java 命令行工具时就不用敲 全路径了: 1) 新建 JAVA_HOME 变量,例如:D:\Program Files\Java\jdk8 2) 在 Path 中添加路径:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 3) 在 Classpath 中添加路径:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar; 3.3 安装 Tomcat 9 1)下载并安装 Tomcat 9, 安装完毕点击 Tomcat \bin 下的 startup.bat 启动 Tomcat,然后在浏 览器的地址栏输入 http://server.hds.org:8080,显示如下 Tomcat 9 页面表示安装成功,Tomcat HTTP 协议的缺省端口为 8080。 2
2)创建 Tomcat 服务的密钥库文件,java 的 keytool 工具命令行为: keytool -genkey -alias tomcat -keyalg RSA -validity 3650 -keystore D:\tomcat.keystore 其中:“-validity 3650”表示证书有效期 10 年,有效期缺省值 90 天; “-alias tomcat”表示密钥库的别名是 tomcat,实际操作都用别名识别,所以这个参数很重要; 下图中:“密钥库口令”我送的是“123456”; “名字与姓氏”输入服务器域名,其它一路回车,最后如果显示正确输入“y”就行了; 密钥口令我采用与密钥库相同,即也是“123456”,因此也是一路回车。 之后可用命令行:keytool –list –keystore tomcat.keystore 查看生成密钥库的文件内容: 2)导出信任证书 tomcat.cer, keytool 工具命令行为: keytool -export -alias tomcat -file d:/tomcat.cer -keystore d:/tomcat.keystore -validity 36500 3
3)将导出的信任证书 tomcat.cer 导入%JAVA_HOME%\jre\lib\security 下的 Java 运行环境证书库 cacerts,证书库 cacerts 的缺省口令为 changeit, keytool 工具命令行为: keytool –import –keystore cacerts –file d:\tomcat.cer –alias tomcat –storepass changeit 4)打开 \conf 目录下的 server.xml 文件,添加如下的 Tomcat HTTPS 协议配置信息,默认端口 8443: 其中:clientAuth="false" 表示单向 HTTPS 认证,就是服务器端要向客户端出示信任证书(即:如果 客户端也走 HTTPS 协议,只需要将 tomcat 信任证书导入客户端的 keystore 证书库中就可以了, 客户端不用向服务器端出示证书,服务器端不关心客户是否可信任)。 之后启动 Tomcat,在浏览器地址栏输入 https://server.hds.org:8443,显示如下 Tomcat 9 页面 表示 HTTPS 配置成功,Tomcat HTTPS 协议的缺省端口为 8443。 4
4)双击已经生成的 tomcat.cer 文件,将证书作为根证书导入浏览器,如果浏览器允许(有的浏览器, 如火狐,认为自签名的证书不是安全证书),浏览器地址栏的红划线将变成一把绿锁,就此 Tomcat HTTPS 8443 端口服务可被安全运行了。 · 开始安装的是Tomcat 8,结果部署的时候Tomcat自带的jar包和应用的jar包发生冲突,最后将Tomcat 升到 Tomcat 9,问题就解决了。网上有说作一些配置,让优先使用应用的jar包,我没试 · Server.xml的XML语句中,让其中的各子句之间仅隔一个空格,避免Java不认特殊字符(例如回车)导致无法 预料的结果 · 生成的tomcat.cer是根证书,同一域名下的cas服务就不需要另配证书了 5
3.4 编译生成 CAS WAR 包 1)下载 cas5.1.x maven war overlay 的 cas-overlay-template,解包到一目录下(例如 cas5.1) 6
2) 下载 maven,设置 windows 环境变量,这样 maven 编译时就不用敲执行文件路径了: -- 新建 MAVEN_HOME 变量,例如:D:\apache-maven-3.5.0 -- 在 Path 中添加路径:%MAVEN_HOME%\bin; 3)打开 CAS 根目录下的 pom.xml 文件,在标签中添加你需要的依赖包,这样 maven 编译时会自动去网上下载相关的 jar 包,满足服务需求,我添加的包括: a)LDAP org.apereo.cas cas-server-support-ldap ${cas.version} b)JDBC org.apereo.cas cas-server-support-jdbc-drivers ${cas.version} org.apereo.cas cas-server-support-jdbc ${cas.version} c)HSQLDB 数据库的,我用的是 hsqldb 2.3.4 org.hsqldb hsqldb 2.3.4 d)JSON 格式 cas 客户端注册的 org.apereo.cas cas-server-support-json-service-registry ${cas.version} 7
3)打开 CAS \etc\cas\config 目录下的 cas.properties,修改 cas 服务的域名,如果采用 JSON 格式文件进行客户端注册(即设置客户端 URL 的过滤器),将最后一句的注释(即“#”号)去掉: cas.server.name: https://server.hds.org:8443 cas.server.prefix: https://server.hds.org:8443/cas cas.adminPagesSecurity.ip=127\.0\.0\.1 logging.config: file:/etc/cas/config/log4j2.xml cas.serviceRegistry.config.location: classpath:/services 4) maven 编译,如果编译成功会在\target\目录下生成文件名 为 cas.war 的 WAR 包 8
分享到:
收藏