集成CAS单点登录功能
集成CAS单点登录功能
后端框架已实现与CAS单点登录系统对接使用,后端同时支持普通登录和CAS单点登录。可以通过参数配置切换前端系统使用哪种登录方式。
开发框架系统对接CAS单点登录系统的时序图如下所示:
1.CAS单点登录处理流程
前端页面处理流程步骤为:
图上的1,3,6,12红色字体的流程步骤。
前端需要代码来处理。
后端服务处理流程步骤:
图上2,7,10,11蓝色字体的流程步骤。
后端框架已实现代码功能,使用时只需要配置参数就行,见后续说明。
CAS处理流程步骤:
图上4,5,8,9紫色字体的流程步骤。单点登录系统自己处理。
2.使用后端框架的单点登录集成功能
2.1.系统参数表添加单点登录配置参数:
1
insert into "UTILITY_SYSTEM_CONFIG" ("ID","NAME","VALUE","CREATE_USER","CREATE_TIME","UPDATE_USER","UPDATE_TIME","DEFAULT_VALUE") values ('ssoLoginParam', 'ssoLogin', 'enable', 'operator', null, 'operator', null, 'disable');
字段名 | 字段值 |
---|---|
VALUE |
enable:启用单点登录disable:禁止单点登录 |
当启用单点登录时,所有401返回值如下所示:
1
{"code": 401,"message": "未授权访问","data": {"loginURL": "xxx"}}
loginURL值为单点登录URL,例如:http://xxx:xxx/cas/login?service=http://10.110.200.53:5102/home
当前端页面发现401返回data中的loginURL不为空时,需要重定向到loginURL指向的页面。
2.2.后端配置单点登录相关参数
单点登录相关参数配置在security-xxx.properties文件中,示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#-------------------单点登录参数配置-----------------------------------
#框架登录验证方式:
#basic:普通账号密码登录方式;sso-cas:单点登录CAS集成方式
base.security.config.mode=sso-cas
#401无权限访问后返回的登录页面地址,现为CAS登录页面URL
base.security.login.url=http://{casUrl}/login?service=http://{frontendUrl}
#CAS登录成功后跳转到的前端页面URL,service参数值
base.security.sso.cas.login.success.url=http://{frontendUrl}
#CAS API地址,后端用来验证CAS的ST有效性
base.security.sso.cas.api.url=http://{casUrl}
# CAS ticket验证成功后返回的用户标识属性名称,此属性值对应用户的account值,单点登录成功后此用户会自动登录应用系统
base.security.sso.cas.user.identifier={userIdentifier}
#CAS ST保存时间,用于退出时根据ST注销session使用
base.security.sso.cas.st.timeout=12
#开启单点登录日志
logging.level.com.framework.backend.security.controller.SsoController=debug
3.单点登出功能
-
前端页面直接重定向到单点登出URL:
- http://{casUrl}/logout
-
同时需要在单点登录系统中配置登出回调URL,后端不需要改动任何代码:
- http://{backendUrl}/services/sso/ssoLogout
4.后端开发框架处理
后端开发框架了已经放开了/sso/ssoLogin和/sso/ssoLogout方法的登录验证,不需要登录系统就可以直接调用这两个方法。
本文由作者按照
CC BY 4.0
进行授权