• Apache 的mod_auth_cas模块的介绍和使用


    apache的mod_auth_cas模块是一个集成到apache中的cas客户端,一般是配合Apache的反向代理来使用,对某个url的请求先经过apache,apache会判断是否经过cas认证,若未认证,则跳转到cas进行认证,若认证通过,则根据反向代理的规则,将请求转发到后台的应用中去处理,转发的时候一般会带上一个认证的头信息,后端的应用从Apache转发过来的头信息中获取到用户信息,让用户登录,整个登录操作完成。

    配置:

    1.引入so文件

    直接运行a2enmod auth_cas命令

    或者是把mod_auth_cas的源码编译之后的so文件,放到/usr/lib/apache2/modules/mod_auth_cas.so 然后,在mods-available目录新建auth_cas.load 和 auth_cas.conf

    auth_cas.load内容:

      LoadModule auth_cas_module /usr/lib/apache2/modules/mod_auth_cas.so
    

    auth_cas.conf 见下节

    在apache的mods-enabled 中创建auth_cas.load 和 auth_cas.conf的软链接使配置生效

      ln -s auth_cas.load ../mods-available/auth_cas.load
      ln -s auth_cas.conf ../mods-available/auth_cas.conf
    

    2.修改auth_cas.conf,内容如下

      LogLevel Debug
      CASDebug On
      CASVersion 2
      CASCookiePath /var/cache/apache2/mod_auth_cas/
      #CASValidateServer off
      #CASAllowWildcardCert on
      CASTimeout 1740
      CASIdleTimeout 1740
      CASLoginURL http://casserver:8080/cas/login
      #CASValidateURL http://casserver:8080/cas/samlValidate
      CASValidateURL http://casserver:8080/cas/serviceValidate
      #CASValidateURL http://casserver:8080/cas/samlValidate
      CASRootProxiedAs http://yourhost
      #CASValidateSAML On
      CASSSOEnabled On
      #CASAttributePrefix CAS_
    

    新建/var/cache/apache2/mod_auth_cas/ 文件,并授予权限(让apache用户可以写入cookie信息)

    3.修改代理配置

      <VirtualHost *:80>
      <LocationMatch "(/wiki.*$)|(/issues.*$)">
      Authtype CAS
      CASAuthNHeader REMOTE_USER
      require valid-user
      </LocationMatch>
      <Proxy *>
      Order deny,allow
      Allow from all
      </Proxy>
      ProxyPreserveHost On
    
      ProxyPass /wiki http://wiki:8090/wiki
      ProxyPassReverse /wiki http://wiki:8090/wiki
    
      ProxyPass /issues http://issues:8080/issues
      ProxyPassReverse /issues http://issues:8080/issues
    
      </VirtualHost>
    

    以上代理配置的介绍:apache拦截以 /wiki和/issues开头的url,发现没有通过CAS认证的话,会重定向到CAS认证,CAS认证通过之后,会把COOKIE的信息写入到auth_cas.conf中配置的CASCookiePath目录里,然后再代理到相应的地址,同时增加名为REMOTE_USER的header,应用里边只需要通过这个header找到相应的用户,让相应的用户登录即可

  • 相关阅读:
    Java显示指定类型的文件
    Mysql B-Tree, B+Tree, B*树介绍
    java海量大文件数据处理方式
    RandomAccessFile读取文本简介
    ConcurrentHashMap1.7和1.8的不同实现
    Java并发中的CopyOnWrite容器
    Java阻塞队列的实现
    JVM之Java虚拟机详解
    Spring AOP的实现原理
    SpringMVC工作原理
  • 原文地址:https://www.cnblogs.com/jiaoyiping/p/7683124.html
Copyright © 2020-2023  润新知