rest sso 和_SSO企业单点登录系统——CAS REST认证方式

本文介绍了在不希望CAS直接访问账号数据的情况下,如何使用REST认证方式进行SSO登录。通过配置CAS服务器,设置REST认证URI,并在用户登录时将用户名密码Base64编码放入请求头。成功认证的响应需返回特定格式的数据,否则将根据不同的错误情况返回不同状态码。在实际操作中,由于缺少对应的登录服务,导致登录认证失败。
摘要由CSDN通过智能技术生成

REST认证方式使用在这样的场景下,用户数据是存储在远端,不允许CAS直接访问账号数据,不希望CAS知道账号数据的表结构等情,因此会通过发起一个POST请求来进行认证.

CAS配置

第一步把上节内容中的数据库配置全部注释掉,或者我们复制一份新的cas.properties文件.

cas.server.name=https://localhost:8443

cas.server.prefix=${cas.server.name}/cas

logging.config: file:/etc/cas/config/log4j2.xml

cas.authn.accept.users=

cas.authn.rest.uri=http://localhost:8080/login

cas.authn.rest.passwordEncoder.type=DEFAULT

cas.authn.rest.passwordEncoder.characterEncoding=UTF-8

cas.authn.rest.passwordEncoder.encodingAlgorithm=MD5

build.gradle配置

compile "org.apereo.cas:cas-server-support-rest-authentication:${project.'cas.version'}"

当用户点击登录后,cas会发送post请求到

http://localhost:8080/login

并且把用户信息以”用户名:密码”进行Base64编码放在authorization请求头中.

若输入用户名密码为:LegitUser/Password1

那么请求头包括: authorization=Basic Base64(LegitUser+MD5(Password1))

那么发送后客户端必须响应一下数据,cas明确规定如下:

cas 服务端会通过post请求,并且把用户信息以”用户名:密码”进行Base64编码放在authorization请求头中返回200状态码并且格式为{“@class”:”org.apereo.cas.authentication.principal.SimplePrincipal”,”id”:”LegitUser”,”attributes”:{}} 是成功的;

返回错误码

返回状态码:403用户不可用;404账号不存在;423账户被锁定;412过期;428密码需要更改;其他登录失败.

编译执行

提示找不到login服务

登录认证失败

可见已经提示post的服务并不存在.下一节我们来创建一个实例服务来配合做验证.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值