CAS-apache插件单点认证原理
2022-01-18 16:28:17 5 举报
CAS apache插件认证原理
作者其他创作
大纲/内容
2. 如果发现有cookie,则需要走校验逻辑(有效或是否过期)-> isValidCASCookie
尝试获取基本信息,用于后面的认证流程使用
1. 如果发现没有会话cookie直接302到认证服务->redirectRequest
4. 进入这里说明ticket校验成功,需要创建并存储会话cookie-> createCASCookie
deleteCASCacheFile
4. 判断是否有会话cookie(如果有ticket但是校验失败,且没有会话cookie,则直接返回401错误)
2. 安全校验,将requestHeader中一些可能有特殊含义的属性去掉,防止影响认证安全(默认开启)- > cas_scrub_request_headers
3. 如果确实是登出请求,则进入过期流程 -> expireCASST
cas_authenticate
是否有效
如果会话存储redis则检查redis
1. 如果发现有ticket,先移除URL上的ticket参数(前面已经获取到ticket,保留原始请求URL)
否
5. 将用户信息设置到reqHeader构造URL代理或者跳转
如果会话存储本地,则写文件系统
没有
1. 判断请求是否有authType属性且配置‘CAS’<单点集成配置,如果未配置则跳过认证>
3. 构造saml协议请求认证服务器-> getResponseFromServer
3. 判断如果是Post请求,就进入SSOFilter拦截器处理(主要用来处理登出请求)<登录流程会跳过此步骤>
8.2 302到认证服务->redirectRequest-> 过期会话cookie
结果会影响最终判断
redisCommand(Delete cache)
如果会话存储本地,则读文件系统
2. 校验是否是logout的saml协议请求 -> CASSAMLLogout
3. 会话cookie有效则需要存储会话
2. 校验ticket的有效性-> isValidCASTicket
4. 尝试获取Ticket(用来去服务端换用户的票据)-> getCASTicket<首次访问,URL没有ticket>
1. 主要读取requestBody -> cas_in_filter
详细分解企业级开源产品apereo-cas:apache插件 [mod_auth_cas] 的原理及认证步骤
如果会话存储本地,则直接删除本地文件
5. 尝试获取会话Cookie(mod_auth_cas)
有
如果会话存储redis则执行写redis命令
7. 继续校验->进入这里说明ticket为空,查看是否有会话cookie(step.5)<首次访问,没有会话cookie>
8.1. 设置header用户信息,返回OK
6. 开始校验-> 先看ticket是不是为空(step.4)<首次访问,URL没有ticket>
8. 判断是否有用户(前面的逻辑结果可能没有 step7.3)
如果会话存储在redis,过期redis会话
是
0 条评论
回复 删除
下一页