CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。目前的方式是通过Dex接入到GitLab中,使用GitLab中的用户完成认证。
我们目前使用的Kubesphere平台版本是:v3.2.1,CAS版本是:5.2.2。
登录Kubesphere官网,查询相关集成文档,虽然写了支持CAS,但是并没有相关说明。
经过翻看Kubesphere官网相关文档,在v3.3版本发现有集成CAS的相关说明。
根据v3.3中相关说明进行操作后发现CAS无法正常使用,跳转到了错误的登录页:
正确地址应该如下图所示:
如果在配置中加入路径/login,如图所示:
那么会出现另外一个问题
所以,这应该是Kubesphere的3.2.1版本的bug,我已在社区中反馈此问题。那么目前怎么解决这个问题呢?
方案1、使用Nginx的rewrite功能
由于我们使用的域名都是经过Nginx代理出来的,那么,当检测到访问错误的路径时直接rewrite到正确的路径。
方案2、改造CAS
根据跳转到的错误页面的提示,定位到具体的页面,然后对页面进行改造。当进入此页面时,直接跳转到正确页面。
由于Nginx是公用组件,操作风险较大,故选用方案2进行解决。
集成CAS后存量用户调整
两种登录方式返回的信息是不一致的,故用户信息需进行调整。
使用管理员权限登录后,进入CRD页面,搜索User,进入用户管理页面,并搜索待修改的存量用户。
编辑并保存后即可使用CAS进行登录。