美文网首页权限管理
cas 5.2 单点登录(sso)服务器部署(2019-7-19

cas 5.2 单点登录(sso)服务器部署(2019-7-19

作者: 程序猿TT | 来源:发表于2019-07-15 10:19 被阅读4次

    一、资源准备

    • 需要的安装包

    jdk-8u171-linux-x64.tar
    apache-tomcat-8.5.31.tar
    apache-maven-3.5.3-bin.tar
    cas-overlay-template-master.zip

    • 下载地址

    jdk: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    tomcat: https://tomcat.apache.org/download-80.cgi
    maven: http://maven.apache.org/download.cgi
    cas:https://github.com/apereo/cas-overlay-template


    二 、安装环境

    1、安装jdk
    2、安装Tomcat


    三、生成证书,并为系统注册

    • 生成server.keystore:keytool -genkey -alias tomcat -keyalg RSA -keypass tomcat -storepass tomcat -keystore server.keystore -validity 3600

    alias: 别名 这里起名tomcat
    keyalg: 证书算法,RSA
    keypass:密钥保护密码
    storepass:存储密码
    keystore:证书生成的目标路径和文件名

    [root@ZDK tomcat-8.5]# keytool -genkey -alias tomcat -keyalg RSA -keypass tomcat -storepass tomcat -keystore server.keystore -validity 3600
    您的名字与姓氏是什么?
      [Unknown]:  localhost
    您的组织单位名称是什么?
      [Unknown]:  se^H
    您的组织名称是什么?
      [Unknown]:  si
    您所在的城市或区域名称是什么?
      [Unknown]:  si
    您所在的省/市/自治区名称是什么?
      [Unknown]:  si
    该单位的双字母国家/地区代码是什么?
      [Unknown]:  si
    CN=localhost, OU=s, O=si, L=si, ST=si, C=si是否正确?
      [否]:  y
    
    • 生成证书 server.cer​:keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass tomcat
    • 导入证书:keytool -import -trustcacerts -alias tomcat -keystore "/etc/pki/java/cacerts" -file "/home/cas/tomcat-8.5/server.cer" -storepass changeit
    所有者: CN=localhost, OU=s, O=si, L=si, ST=si, C=si
    发布者: CN=localhost, OU=s, O=si, L=si, ST=si, C=si
    序列号: f720b7a
    有效期为 Fri Dec 21 15:35:41 CST 2018 至 Sun Oct 29 15:35:41 CST 2028
    证书指纹:
         MD5:  9E:D0:C6:39:3B:42:2C:73:D3:2A:EE:F8:4F:B4:35:14
         SHA1: 86:61:18:F8:79:1F:27:5F:74:E6:2A:A3:EF:C0:87:F6:47:5B:A5:51
         SHA256: 9B:75:39:8F:71:77:8E:B9:A6:09:F1:CF:62:98:57:3B:7C:C3:1D:B1:F1:60:48:7D:E5:C9:16:CD:BF:0A:E6:4C
    签名算法名称: SHA256withRSA
    主体公共密钥算法: 2048 位 RSA 密钥
    版本: 3
    
    扩展: 
    
    #1: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    0000: 35 39 81 E0 7F 30 91 41   AF 8C 12 A3 B0 54 72 F0  59...0.A.....Tr.
    0010: 9D 14 35 31                                        ..51
    ]
    ]
    
    是否信任此证书? [否]:  y
    证书已添加到密钥库中
    

    四、tomcat配置https

    • 编辑 server.xml 文件 vim /home/cas/tomcat-8.5/conf/server.xml,添加
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" 
        maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
        clientAuth="false" sslProtocol="TLS" keystoreFile="/home/cas/tomcat-8.5/server.keystore" keystorePass="tomcat" />
    
    • 重启Tomcat,检测是否配置https成功,访问:https://172.10.10.232:8443/,出现Tomcat默认的欢迎界面则表示配置成功

    五、编译cas包

    • 解压cas-overlay-template-master
    • 添加服务器数据库支持,在pom文件中添加依赖:
    <!--数据库认证相关 start--> 
    <dependency>
        <groupId>org.apereo.cas</groupId>
        <artifactId>cas-server-support-jdbc-drivers</artifactId>
        <version>${cas.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apereo.cas</groupId>
        <artifactId>cas-server-support-jdbc</artifactId>
        <version>${cas.version}</version>
    </dependency>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
    </dependency>
    <!--数据库认证相关 end-->
    
    • 编译生成cas.war 包 mvn clean package

    • 将生成在 /target/cas.war 包拷贝到 服务器webapps文件夹下

    • 访问:http://172.10.10.232:8181/cas/login 出现以下画面

      http请求页面.png
    • 两点红色警告,非安全连接和静态密码

    • 访问:https://172.10.10.232:8443/cas/login 出现以下画面

      https请求页面.png
    • 只剩下静态密码警告


    六、动态数据库配置

    • 配置配置文件 application.properties
    vim /home/cas/tomcat-8.5/webapps/cas/WEB-INF/classes/application.properties
    # 注释静态密码
    # cas.authn.accept.users=casuser::Mellon
    # 配置数据库
    cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3307/sso?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
    cas.authn.jdbc.query[0].user=root
    cas.authn.jdbc.query[0].password=abc123456
    cas.authn.jdbc.query[0].sql=select * from cas  where username=?
    cas.authn.jdbc.query[0].fieldPassword=password
    cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
    # 添加可以使用http认证
    cas.tgc.secure=false
    cas.serviceRegistry.initFromJson=true
    

    select * from cas where username=?,其中 cas 为自定义的用户数据库


    七、修改cas可支持的service

    • 支持 http 验证,编辑/home/cas/tomcat-8.5/webapps/cas/WEB-INF/classes/services/HTTPSandIMAPS-10000001.json
    vim /home/cas/tomcat-8.5/webapps/cas/WEB-INF/classes/services/HTTPSandIMAPS-10000001.json
    # 支持http
    "serviceId" : "^(https|imaps)://.*", 改为 "serviceId" : "^(https|imaps|http)://.*",
    

    八、测试登录

    相关文章

      网友评论

        本文标题:cas 5.2 单点登录(sso)服务器部署(2019-7-19

        本文链接:https://www.haomeiwen.com/subject/oaimkqtx.html