当前位置:首页 > 后端开发 > 轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议

轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议

7个月前 (05-26)40

概述说明


CAS Server默认搭建出来,客户端程序只能按照CAS自身的协议接入。CAS的强大在于,有官方的插件,可以支持其他的协议。本章节就让CAS Server怎么增加OAuth2.0的登录协议。

 

安装步骤


`1. 首先,您需要有个CAS Server端

如果您没有,可以按照我之前写的文章《轻松搭建CAS 5.x系列文章》系列的前3篇文章搭建好CAS Server。

 

·2. 在pom.xml增加依赖包

1         <!-- OAuth/OpenID Authentication Begin -->
2         <dependency>
3           <groupId>org.apereo.cas</groupId>
4           <artifactId>cas-server-support-oauth-webflow</artifactId>
5           <version>${cas.version}</version>
6         </dependency>
7         <!-- OAuth/OpenID Authentication End -->

 

·3. application.properties增加配置文件

(该文件路径:D:\casoverlay\cas-overlay-template\src\main\resources)

1 cas.authn.oauth.refreshToken.timeToKillInSeconds=2592000
2 cas.authn.oauth.code.timeToKillInSeconds=30
3 cas.authn.oauth.code.numberOfUses=1
4 cas.authn.oauth.accessToken.releaseProtocolAttributes=true
5 cas.authn.oauth.accessToken.timeToKillInSeconds=7200
6 cas.authn.oauth.accessToken.maxTimeToLiveInSeconds=28800
7 cas.authn.oauth.grants.resourceOwner.requireServiceHeader=true
8 cas.authn.oauth.userProfileViewType=NESTED

 

·4. 增加接入servcie的注册文件:OAuth2-100001. json,内容如下

(路径:D:\casoverlay\cas-overlay-template\src\main\resources\services)

 

1 {
2   "@class" : "org.apereo.cas.support.oauth.services.OAuthRegisteredService",
3   "clientId": "100001",
4   "clientSecret": "100001abcdeft",
5   "serviceId" : "^(https|http|imaps)://.*",
6   "name" : "OAuthService",
7   "id" : 100
8 }

 

-5. OK,可以打包了

mvn package

 

-6. 打包后打target\cas.war部署到tomcat

搭建OK了,我们来验证下功能

 

 

功能验证


·1. 访问如下地址:

https://cas.example.org:8443/cas/oauth2.0/authorize?response_type=code&client_id=100001&redirect_uri=http://www.baidu.com

参数说明:

response_type=code,这个是按照code的方式接入,有多种接入方式

client_id=100001,这个参数的值是servcie注册的定义的,每个接入系统都分配一个值

redirect_uri=http://www.baidu.com:这个是认证通过后跳转的地址。我这个是示例,认证成功后,就跳转到百度。您需要修改成您的接入系统;

轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议 _ Java侠

 

·2. 输入登录帐号名密码,跳转到OAuth2.0的授信画面

轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议 _ Java侠

 

-3. 点击允许后,跳转到baidu.com,后面带有参数code

轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议 _ Java侠

 

 

-4. 通过code获取accessToken,

接入程序需要调用如下地址,

目前我们是浏览器直接访问这个地址做模拟吧

https://cas.example.org:8443/cas/oauth2.0/accessToken?grant_type=authorization_code&client_id=100001 &client_secret=100001abcdeft&code=OC-2-3M6BedCz7TLIz0rpJUm-uLzPoFBbPOO0&redirect_uri=http://www.baidu.com

页面会返回如下文字信息

access_token=AT-1-53AfGdKA2mL5IbI1iP29n6HlXcWL3Q5b&expires_in=28800

这个就是access_token

 

-5. 通过accessToken获取当前登录用户信息

https://cas.example.org:8443/cas/oauth2.0/profile?access_token=AT-1-53AfGdKA2mL5IbI1iP29n6HlXcWL3Q5b

返回

1 {
2   "service" : "http://www.baidu.com",
3   "attributes" : {
4     "credentialType" : "UsernamePasswordCredential"
5   },
6   "id" : "admin",
7   "client_id" : "100001"
8 }

 

大功告成

这个就是模拟了接入系统按照OAuth2.0协议获取的用户登录信息

当然本章只是使用code方式接入,

还有其他的接入方式,

比如接入程序自己编写登录画面,获取到用户名和密码后给到Cas Server,这样对用户体验更好。

 

 

参考文章


1. CAS中文文档站点#OAuth/OpenID认证

2. 轻松搭建CAS 5.x系列文章

 

 

最后,大家想更多CAS了解的话,可以来CAS中文文档站点(http://www.cassso-china.cn)来瞅瞅

轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议 _ Java侠

 

作者:诗猿土豆
来源链接:https://www.cnblogs.com/jpeanut/p/9352239.html

标签: OAuth2

“轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议” 的相关文章

IdentityServer4实现Oauth2.0四种模式之隐藏模式

IdentityServer4实现Oauth2.0四种模式之隐藏模式

  接上一篇:IdentityServer4实现OAuth2.0四种模式之密码模式,密码模式将用户的密码暴露给了客户端,这无疑是不安全的,隐藏模式可以解决这...

OAuth2.0介绍

OAuth2.0介绍 OAuth2.0简介 四种许可类型 2.1. 授权码许可(Authorization Code) 2.2. 隐式许可(Implicit) 2...

SpringBootSecurity学习(15)前后端分离版之 OAuth2.0简单示例

SpringBootSecurity学习(15)前后端分离版之 OAuth2.0简单示例

springboot-security学习 OAuth2.0 OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。客户端来申请资源,资源所有...

SpringCloud-OAuth2(三):进阶篇

SpringCloud-OAuth2(三):进阶篇

上篇文章讲了SpringCloud OAuth 的实战篇,但是在微服务环境下,常常会有一个认证中心。 而普通服务接收到请求后,判断token是否有效并不是自己处理的,因为token的管理...

IdentityServer4实现OAuth2.0四种模式之授权码模式

IdentityServer4实现OAuth2.0四种模式之授权码模式

接上一篇:IdentityServer4实现OAuth2.0四种模式之隐藏模式 授权码模式隐藏码模式最大不同是授权码模式不直接返回token,而是先返回一个授权码,然后再根据这个授...

Spring Security 与 OAuth2(完整案例)

Spring Security 与 OAuth2(完整案例)

案例简述 简述: 允许内存、数据库、JWT等方式存储令牌 允许 JWT 方式验证令牌 允许从内存、数据库中读取客户端详情...

OAuth2 快速入门

OAuth2 快速入门

1 OAuth简述 OAuth 2.0 是一个授权协议,它允许软件应用代表(而不是充当)资源拥有者去访问资源拥有者的资源。应用向资源拥有者请求授权,然后取得令牌(token),并用...

OAuth2.0认证和授权以及单点登录

OAuth2.0认证和授权以及单点登录

https://www.cnblogs.com/shizhiyi/p/7754721.html   OAuth2.0认证和授权机制讲解 2017-10-30...

[原创]Oauth2.0实现SSO单点登录的CAS方式和相关Demo演示

[原创]Oauth2.0实现SSO单点登录的CAS方式和相关Demo演示

SSO介绍 什么是SSO 百科:SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以...

微信公众平台开发——微信授权登录(OAuth2.0)

微信公众平台开发——微信授权登录(OAuth2.0)

微信公众平台开发——微信授权登录(OAuth2.0) 1、OAuth2.0简介   OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存...