CAS单点登录-Service配置(七)

14 篇文章 0 订阅

CAS单点登录-Service配置(七)

简介

cas客户端接入称之为service,必须经过cas的允许才能进行登录,当然不同的客户端可以做不同的事情,其中包括:

  • 自定义主题(各客户端登录页自定义)
  • 自定义属性(服务属性(固定)与用户属性(动态))
  • 自定义协议
  • 自定义登录后跳转方式,跳转路径
  • 授权策略(拒绝属性、可登录时间范围限制、等等)
  • 拒绝授权模式

接下来来一个FAQ

A: 什么是service,根cas有什么关系?
B: service是使用型cas是服务型,cas好比游乐园,service好比来游乐园的游客
A: 那service如何对接cas?service如何知道是否被允许接入?
B: 好比游客需要进入游乐园,那么游客需要门票,获取门票有多种方式,可以用手机校验码,或者身份证进行获取。当然如果是犯罪分子门票都买不了,更何况进去游乐园
A: 具体service如何作为客户端使用?
B: 好比买门票,必须填写身份证号、手机号、付款等流程,当然也可以通过不同渠道购买,cas也有不同的客户端实现,cas client、pac4j等
A: service接入有何好处?
B: 被接入的service无需进行输入密码即可进入系统,好比A-service(OA系统)登录了,B-service(账单系统),C-service(CRM系统)无需再次登录,传统的方式有10个八个系统进行登录,用户会疯掉,开发员也需要管理多个系统的帐号数据

说了一大推,不如来点正事,例如怎么配置,如何管理,马上马上~~

实战

持久化策略:

  • InMemory XML(通过spring bean进行内存存储)
  • JSON(通过json文件存储) 推荐 ❤❤❤
  • YAML(通过yml文件存储)
  • Mongo(文档数据库持久化)推荐 ❤❤❤❤❤
  • JPA(关系型数据库持久化)
  • DynameDb
  • LDAP
  • Cochbase

在sso初步上线时推荐采用json文件存储,后面逐步多服务注入时推荐采用Mongo进行存储,采用cas-management进行采用UI进行管理我们的数据,目前阶段,持久化策略必须和cas进行配置一致才能生效

本章进行service的json配置及介绍,下一章进行cas-management配置

JSON 配置

需求:对所有http://localhost开头请求的service进行允许认证

resources/services下新建文件Localhost-10000002.json

{
  "@class": "org.apereo.cas.services.RegexRegisteredService",
  "serviceId": "^(http)://localhost.*",
  "name": "本地服务",
  "id": 10000002,
  "description": "这是一个本地允许的服务,通过localhost访问都允许通过",
  "evaluationOrder": 1
}

注意:

  1. json文件名字规则为${name}-${id}.json,id必须为json文件内容id一致

json文件解释:

  1. @class:必须为org.apereo.cas.services.RegisteredService的实现类,对其他属性进行一个json反射对象,常用的有RegexRegisteredService,匹配策略为id的正则表达式
  2. serviceId:唯一的服务id
  3. name: 服务名称,会显示在默认登录页
  4. id:全局唯一标志
  5. description:服务描述,会显示在默认登录页
  6. evaluationOrder: 匹配争取时的执行循序

除了以上说的还有很多配置策略以及节点,具体看官方文档,配置不同的RegisteredService也会有稍微不一样

启用识别

上面新建了json文件cas还不知道要去识别json,需要打开开关

application.properties

#开启识别json文件,默认false
cas.serviceRegistry.initFromJson=true

#自动扫描服务配置,默认开启
#cas.serviceRegistry.watcherEnabled=true
#120秒扫描一遍
#cas.serviceRegistry.repeatInterval=120000
#延迟15秒开启
#cas.serviceRegistry.startDelay=15000

#默认json/yml资源加载路径为resources/services
#cas.serviceRegistry.config.location=classpath:/services

测试

若cas启动后看到如下结果,恭喜你~
这里写图片描述

当然有可能看到数字为2,别担心,因为我做了maven的过滤,默认cas提供了默认的service,我们不需要可以自行解决

这里写图片描述

下载代码尝试:GitHub 其他版本可以到GitHub或者码云查看

发现一些意外的事情可以考虑翻翻前面的博客进行学习哦

作者联系方式

如果技术的交流或者疑问可以联系或者提出issue。

邮箱:huang.wenbin@foxmail.com

QQ: 756884434 (请注明:SSO-CSDN)

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
CAS单点登出功能的实现中,需要在CAS服务器端和CAS客户端应用中进行相应的配置。以下是配置的相关信息: CAS服务器端配置: 1. 在CAS服务器的配置文件(如cas.properties)中,需要设置以下属性: - `cas.logout.followServiceRedirects`: 设置为true,表示在登出过程中跟随服务端的重定向操作。 - `cas.logout.redirectParameterName`: 设置重定向参数的名称,默认为service。 - `cas.logout.addHandlerToChain`: 添加登出处理器到处理链中,例如:`cas.logout.addHandlerToChain=MyLogoutHandler`。 - `cas.logout.handlers.MyLogoutHandler.enabled`: 启用自定义登出处理器,需要根据实际情况进行配置。 2. 配置CAS服务器的登出URL: - 在CAS服务器的配置文件(如cas.properties)中,设置`cas.logout.defaultLogoutUrl`属性为CAS服务器的登出URL。 CAS客户端应用配置: 1. 配置CAS客户端应用的web.xml文件: - 添加CAS过滤器(如Cas20ProxyReceivingTicketValidationFilter),用于接收和验证CAS票据,并获取用户身份信息。 - 添加CAS单点登出过滤器(如SingleSignOutFilter),用于接收CAS服务器的登出请求并执行相应的登出操作。 2. 配置CAS客户端应用的属性文件(如cas.properties): - 设置`cas.server.logoutUrl`属性为CAS服务器的登出URL。 - 设置`cas.client.logoutRedirectParameterName`属性为重定向参数的名称,与CAS服务器端配置保持一致。 以上是CAS单点登出功能的相关配置信息。具体的配置方式和步骤可能会根据CAS服务器和客户端应用的不同而有所差异,可以参考CAS的官方文档或相关文档进行具体配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值