cas单点登录:开启oauth2.0协议(代码片段)

fdzang fdzang     2022-12-13     267

关键词:

1.添加依赖

<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-oauth-webflow</artifactId>
    <version>$cas.version</version>
</dependency>

2.application.properties添加以下属性

##
# CAS_Service
#
cas.server.name=https://server.cas.com:$server.port/cas
cas.server.prefix=$cas.server.name

##
# OAuth
#
cas.authn.oauth.refreshToken.timeToKillInSeconds=2592000
cas.authn.oauth.code.timeToKillInSeconds=30
cas.authn.oauth.code.numberOfUses=1
cas.authn.oauth.accessToken.releaseProtocolAttributes=true
cas.authn.oauth.accessToken.timeToKillInSeconds=7200
cas.authn.oauth.accessToken.maxTimeToLiveInSeconds=28800
cas.authn.oauth.grants.resourceOwner.requireServiceHeader=true
cas.authn.oauth.userProfileViewType=NESTED

3.增加接入servcie的注册文件:OAUTH-1001. json


  "@class" : "org.apereo.cas.support.oauth.services.OAuthRegisteredService",
  "clientId": "abc",
  "clientSecret": "xyz",
  "serviceId" : "^(https|http|imaps)://app1.cas.com.*",
  "name" : "OAuthService",
  "id" : 1001

这里的serviceId是通过请求过来的url中的redirect_uri来进行限制的。

4.端点介绍

启用OAuth支持后,将提供以下端点:

端点 描述 方法类型
/oauth2.0/authorize 获取authCode或者token GET
/oauth2.0/accessToken,/oauth2.0/token 获取accessToken POST
/oauth2.0/profile 通过access_token参数获取用户信息 GET

5.测试

1.首先Oauth客户端使用Get请求访问以下地址,获取AuthCode:

  https://server.cas.com:8443/cas/oauth2.0/authorize?response_type=code&scope=openid&client_id=abc&redirect_uri=http://app1.cas.com

  client_id:为之前service中的值

  redirect_uri:认证通过后的跳转地址,会根据service文件中的serviceId进行判断是否注册。

请求后,会跳转登录界面,登录成功跳转http://app1.cas.com,并返回AuthCode,如:

  http://app1.cas.com/?code=OC-1-jkaGG16jVb-O8cUkMHI1RfgVuYKfs9zs

 

2.根据authCode获取accessToken

  https://server.cas.com:8443/cas/oauth2.0/accessToken?grant_type=authorization_code&client_id=abc&client_secret=xyz&code=OC-1-jkaGG16jVb-O8cUkMHI1RfgVuYKfs9zs&redirect_uri=http://app1.cas.com

请求URL,获取响应:access_token=AT-1-TRYGjkhonoCqC5m-RKFef3ZrDBrzNUg-&expires_in=28800

 

 

3.根据AccerssToken获取用户信息

  https://server.cas.com:8443/cas/oauth2.0/profile?access_token=AT-1-TRYGjkhonoCqC5m-RKFef3ZrDBrzNUg-

请求URL,获取响应如下:


  "service" : "http://app1.cas.com",
  "attributes" : 
    "credentialType" : "RememberMeUsernamePasswordCaptchaCredential"
  ,
  "id" : "admin",
  "client_id" : "abc"

 

 
参考:https://blog.csdn.net/qq_34021712/article/details/82290876

cas单点登录的配置(代码片段)

1.生成安全证书Cas server默认的安全认证是基于https协议的,这就要求在应用程序和CAS Server端配置SSL协议。(当然也可以在casserver中配置让其可以用http访问)要使用https协议,就需要使用安全证书,这里我们通过JDK自带的... 查看详情

overlay方式构建cas(代码片段)

...个系列,分享一些实践中的内容。ApereoCAS是企业级的开源单点登录解决方案,单点登录洋文叫SSO,也就是实现在有多个系统的情况下,只要登录其中一个系统,访问其他系统时就无需再次登录。CAS项目托管在全球最大的同性交友... 查看详情

cas单点登录系列之极速入门于实战教程(4.2.7)(代码片段)

@目录一、SSO简介1.1单点登录定义1.2单点登录角色1.3单点登录分类二、CAS简介2.1CAS简单定义2.2CAS体系结构2.3CAS原理三、CAS服务端搭建3.1CAS支持Http登录配置3.2CAS服务端部署运行四、CAS客户端接入五、客户端极速接入一、SSO简介1.1单... 查看详情

cassso研究一:抛弃https让cas以http协议提供单点登录服务(代码片段)

本文环境:1、apache-tomcat-7.0.50-windows-x862、cas-server-3.4.113、cas-client-3.2.1将cas-server-webapp-3.4.11.war放入tomcat的webapps下,改名ROOT.war,启动tomcat,待自动解压后,进行如下修改:1、修改WEB-INF\\deployerConfigContext.xml&... 查看详情

cassso研究一:抛弃https让cas以http协议提供单点登录服务(代码片段)

本文环境:1、apache-tomcat-7.0.50-windows-x862、cas-server-3.4.113、cas-client-3.2.1将cas-server-webapp-3.4.11.war放入tomcat的webapps下,改名ROOT.war,启动tomcat,待自动解压后,进行如下修改:1、修改WEB-INF\\deployerConfigContext.xml&... 查看详情

单点登录系统cas入门(代码片段)

一、单点登录的概念  单点登录(SingleSignOn),简称为SSO。SSO是定义在多个应用系统中,用户只需要登录一次就可以访问所有的相互信任的应用系统。  当我们创建工程的子系统部署在不同的服务中的时候,使用传统的sessio... 查看详情

dataease集成cas实现用户单点登录

...以使用户在所有应用平台使用同一个用户名进行登录;而单点登录平台,可以使用户登录任一应用平台后,继续登录其他平台无需输入密码,直接进入登录后的状态。常用的单点登录协议有OIDC、OAuth2.0、SAML2、CAS等,本教程将介... 查看详情

如何在分布式环境中搭建单点登录系统|第二篇:基于oauth2.0开发sso核心代码(代码片段)

什么是SSO单点登录系统主要解决统一认证授权的问题,在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。想要完成单点登录的效果,必须先统一管理用户信息,其他应用系统必须配... 查看详情

架构师成长记_第七周_06_cas单点登录系统构建(代码片段)

文章目录CAS单点登录系统构建(初次登录9,10步骤):创建用户全局门票,创建临时票据继续完善controller中doLogin方法测试CAS单点登录系统构建(初次登录9,10步骤):创建用户全局门票,创建临时票据继续完善controller中doLogin方法/***CAS的统一... 查看详情

sso之cas单点登录实例演示(代码片段)

...人员提供一个入门指南,一步一步演示如何实现基于CAS的单点登录。CAS的官网:http://www.jasig.org/cas 二、演示环境本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下:windows764位,主机... 查看详情

cas客户端流程详解(源码解析)--单点登录(代码片段)

博主之前一直使用了cas客户端进行用户的单点登录操作,决定进行源码分析来看cas的整个流程,以便以后出现了问题还不知道是什么原因导致的cas主要的形式就是通过过滤器的形式来实现的,来,贴上示例配置:1<listener>2<... 查看详情

双网隔离环境下cas单点登录的解决方案(代码片段)

阅读目录前言技术背景问题描述问题分析解决方案解决方案1:通过统一域名和DNS解决解决方案2:通过应用程序端解决解决方案3(推荐!):通过Apache/Nginx反向代理配置1:定义VirtualHost,开启反向代理配置2&#x... 查看详情

架构师成长记_第七周_07_cas单点登录系统构建(代码片段)

CAS单点登录系统构建(初次访问:11,12步):验证临时票据继续完善controller/***CAS的统一登录接口*目的:1.登录后创建用户的全局会话->uniqueToken*2.创建用户全局门票,用以表示在CAS端是否登录->userTicket*3.创建用户的临时票据,用于会跳... 查看详情

基于cas实现sso单点登录(代码片段)

...注公众号,实用技术文章及时了解1.概述1.1.什么是SSO?单点登录(SingleSign-On,简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相... 查看详情

web系统之常用单点登录协议

.../密码还能接收;如果系统个数较多,用户则无法接收。单点登录则很好地解决了此问题。单点登录的原理是用户只需进行一次登录,便可访问多个系统。可用于单点登录的协议较多,下面将会简单说明一下常见的四种单点登录... 查看详情

cas单点登录入门(代码片段)

一、单点登录简介  SOO是现在企业比较流行的业务整合解决方案之一,定义解决登录,可以应用在不同系统中,用户只需要登录一次,就可以访问所有相互信任的应用系统(模块开发、同家公司不同产品等等),例如百度,旗... 查看详情

使用cas实现单点登录功能(代码片段)

目录单点登录简介CAS服务器部署上传tomcat服务器压缩到文件夹/usr/local/cas目录下,解压,修改tomcat文件夹名为tomcat修改tomcat配置文件的端口号关闭tomcat服务器,把CAS的war包放入tomcat的webapps目录当中后再启动tomcat服务器对war包时行... 查看详情

架构师成长记_第七周_09_cas单点登录系统构建(代码片段)

CAS单点登录系统构建(二次访问)完善controller(最终)packagecom.beyond.controller;importcom.beyond.pojo.Users;importcom.beyond.pojo.vo.UsersVO;importcom.beyond.service.UserService;importcom.beyond.utils.BEYONDJSONResult; 查看详情