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找到相應的用戶,讓相應的用戶登錄即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM