阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Apache 的mod_auth_cas模块的介绍和使用

281次阅读
没有评论

共计 1849 个字符,预计需要花费 5 分钟才能阅读完成。

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 找到相应的用户,让相应的用户登录即可。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-10/147867.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1849字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中