CAS5.3.x源码定制方案
2024-06-12 23:51:58 0 举报
AI智能生成
CAS5.3.x源码定制方案
作者其他创作
大纲/内容
登录相关
跳过登录页
1、跳转login入口,先在cookie构造TGC
可以成功跳过
改造方案
通过rest接口拿到TGTID,然后在backserver开放接口,根据原生的CookieTGC加密规则,生成tgc,存放到cookie中
疑问点
1、需要定位到生成TGC,找到TGC生成规则
验证通过
2、跳转的应用id指定自定义登录页
OIDC协议
开发方案
复用oidc接口
开发点
登录
1、改造backser Cookie加密逻辑,提供外部接口,模拟生成登录后TGC
注:5.3的cas登录的tgc会与浏览器ua、客户端ip绑定,并且通过自定加密规则写入到cookie
2、base服务改造登录逻辑
在passport登录成功后,先调用1接口,生成TGC,手动写入到cookie
再重定向到原生OIDC授权入口,认证已登录情况下,可以直接回调code
3、跳过应用授权
调整应用配置,跳过授权确认
应用注册
方案一
应用校验放到server-base,backserver固定一个应用id与base交互
交互方式一
backserver直接回调到第三方
需要添加时间戳、签名校验,避免被拦截攻击
交互方式二
固定回调到base服务,由base再回调给第三方
方案二
backserver实现动态注册,base注册应用后,同步配置到backserver
需要调研动态注册机制,跟base服务对接方案
id_token
提供获取签名密钥接口,供第三方获取密钥,验证id_token签名
签名算法
原生只能指定一种加密方式
需要调研能否动态指定加密方式
支持的模式
授权码模式
验证通过
简化授权码
验证通过
回调id_token,默认是回调的隐式响应(#)
可以代码处理调整为?
刷新token
验证通过
密码模式
原生不支持
待确认点
1、oidc接口,复用原/sso/oauth2.0接口,还是新增/sso/oidc 接口
2、登录方案确认
3、应用注册方案确认
4、id_token加密方式暂只支持一种方式,是否需要在注册页面开放配置项
5、id_token暂时只支持返回用户名信息
二期优化
回调id_token,支持回调选择隐式响应(#)
id_token支持自定义subject类型
现在只支持登录名
支持授权机制(scope)
源码解读
Cookie中的TGC生成
org.apereo.cas.web.support.CookieRetrievingCookieGenerator
TGC加密流程
TGC加密规则
TGTID@ClientIp@ClientUA
TGC与浏览器UA、客户端ip是绑定的
应用注册
特点
serviceId需要保持唯一
id不允许重复
博客
登录认证流程
http://www.manongjc.com/detail/14-yvwosarxmbxictd.html#%E5%8F%91%E8%B5%B7%E8%AE%A4%E8%AF%81
功能支持
CAS协议
支持CAS1.0
支持CAS2.0
OAuth2协议
OIDC协议
应用注册
支持上传密钥
jwt生成时自定义加密密钥
response_type模式
code
id_token
token
收藏
收藏
0 条评论
下一页