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找到相应的用户,让相应的用户登录即可
Apache 的mod_auth_cas模块的介绍和使用的更多相关文章
- Apache中 RewriteRule 规则参数介绍
Apache中 RewriteRule 规则参数介绍 摘要: Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.它支持每个完整规则可以拥有不限数量 ...
- 通过apache,和nginx模块去除html中的空格和tab
最近一个项目中,合作方要求去除html中的空格,不想改代码,所以百度了一下通过apache,和nginx模块去除html中的空格和tab的方案,下面记录下来: 一.nginx nginx可以通过mod ...
- 为Apache动态增加模块
Apache已经安装完毕并投入运行,但是后来却发现部分模块没有加载,当然有两个方法: 1. 一是完全重新编译Apache, 再安装 2. 编译模块为SO文件,使用LoadModule指令加载扩展模块. ...
- ubuntu apache开启重写模块
http://www.iblue.cc/2011/09/ubuntu-apache%E5%BC%80%E5%90%AF%E9%87%8D%E5%86%99%E6%A8%A1%E5%9D%97/ Ubu ...
- Apache的rewrite规则详细介绍
Apache的rewrite规则详细介绍 发布日期:2008-09-02 16:16 来源: 作者: 点击:7044 rewrite标志 R[=code](force redirect) 强制外部重定 ...
- 给已经编译运行的Apache增加mod_proxy模块的配置方法
在Linux系统下,需要给已经编译运行的Apache增加mod_proxy模块,可以按照如下方法配置. 具体配置步骤如下: 1. 首先定位到Apache源码的 proxy目录 # cd /root/s ...
- apache动态添加模块
Apache已经安装完毕并投入运行,但是后来却发现部分模块没有加载,当然有两个方法: 1. 一是完全重新编译Apache, 再安装 2. 编译模块为SO文件,使用LoadModule指令加载扩展模块. ...
- 基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)
本篇继续<基于Metronic的Bootstrap开发框架--工作流模块功能介绍>,继续介绍基于Metronic的Bootstrap开发框架的工作模块功能,介绍工作流模块中相关业务表单的界 ...
- Winform开发框架中的内容及文档管理模块功能介绍
在开发项目的时候,我们有一些场景需要编辑一些HTML文档,作为内容发布系统的一部分,有时候也需要对一些文档如WORD文档进行编辑管理,这样需要我们对这些内容及文档进行合适的管理.本文主要介绍在WInf ...
随机推荐
- C#网络编程之Http请求
本片篇分享简单介绍C#中的Http请求,前几天帮朋友的项目封装ApiHelper,我粗糙的结果就如下,想想我真的是差的太远了.还有一位架构师也在封装这个Helper , 所以最后的结果当然是使用大牛的 ...
- semi-global matching 算法总结
semi-global matching(缩写SGM)是一种用于计算双目视觉中disparity的半全局匹配算法.在OpenCV中的实现为semi-global block matching(SGBM ...
- Redhat 5.6(RHEL 5.6)下安装PostgreSQL9.3
1,下载Respository的更新包 http://yum.postgresql.org/9.3/redhat/rhel-5-x86_64/pgdg-redhat93-9.3-1.noarch.rp ...
- JS组件系列——表格组件神器:bootstrap table 包含了js对象的定义和对象成员函数的定义
前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...
- 分享一个有趣的代码,调用电脑中的api语音
在文本文件中输入如下代码: set objTTS = CreateObject("sapi.spvoice") objTTS.speak("为啥我对象这么闹呢?" ...
- hdu5289 2015多校联合第一场1002 Assignment
题意:给出一个数列.问当中存在多少连续子区间,当中子区间的(最大值-最小值)<k 思路:设dp[i]为从区间1到i满足题意条件的解.终于解即为dp[n]. 此外 如果对于arr[i] 往左遍历 ...
- Hibernate_day01讲义_使用Hibernate完成对CRM系统中客户管理的DAO中的CRUD的操作
- Linux下 PHP 安装pecl_http方法
Linux下自带的PHP不支持HTTP库,需要自己安装 pecl_http组件安装步骤如下: 1. 组件安装 1.1 安装php-devel开发组件 yum install php-devel 1.2 ...
- windows C 設置控制臺文本輸出的顏色(可用作調試使用)
#include <windows.h> #define RED 0x0004 #define GREEN 0x0002 #define BLUE 0x0001 #define WHITE ...
- C 复制字符串
不是C++的string, 而是C的字符串复制, 以前一直使用strcpy(), 其实也可以使用sprintf(destbuf, "%s", srcbuf); 偶有所得, 其 ...