OKTA==springboot2.5.4整合OKTA实现单点登录demo
SSO demo with Okta and spring boot - YouTube
整体流程
去okta注册后会自动生成一个教程,点击 Create your web application
设置OKTA认证成功之后返回toekn的URL ,这个地址如果spring security没有指定登录URL,就默认是这个
http://localhost:8081/login
获取到client id 和client sercret ,会用在springboot配置文件中
获取为这个app提供认证的网址, 就是springboot配置文件中需要写的issuer
然后设置能够访问这个app的用户,设置邮箱密码
点击新建的people,将app asigned给指定的people
=========================================================
编写springboot程序
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.4</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo-okta-sso</artifactId><version>0.0.1-SNAPSHOT</version><name>demo-okta-sso</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.okta.spring</groupId><artifactId>okta-spring-boot-starter</artifactId><version>0.6.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.security.oauth.boot</groupId><artifactId>spring-security-oauth2-autoconfigure</artifactId><version>2.1.5.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
package com.example.demooktasso;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.security.PermitAll;
import java.security.Principal;@SpringBootApplication
@RestController
@EnableOAuth2Sso
public class DemoOktaSsoApplication {@GetMapping("/")public String greetUser(Principal principal){return "Hello "+principal.getName()+" from application 2";}public static void main(String[] args) {SpringApplication.run(DemoOktaSsoApplication.class, args);}}
server.port=8081#from application
okta.oauth2.clientId=刚才在OKTA官网查看到的
okta.oauth2.clientSecret=刚才在OKTA官网查看到的
#from API
okta.oauth2.issuer=刚才在OKTA官网查看到的
======================================
启动程序
无痕模式访问localhost:8081
会重定向到这
重定向的完整路径
https://dev-44813837.okta.com/oauth2/default/v1/authorize?client_id=0oa5w5fx8u66AZswK5d7&redirect_uri=http://localhost:8081/login&response_type=code&scope=profile%20email%20openid&state=wLmpI1详细信息
https://dev-44813837.okta.com/oauth2/default/v1/authorize?
client_id=0oa5w5fx8u66AZswK5d7
&redirect_uri=http://localhost:8081/login
&response_type=code
&scope=profile%20email%20openid
&state=wLmpI1
重定向到这就会获取到对应app的认证页面,输入people的邮箱密码
然后依次发起三次请求
https://dev-44813837.okta.com/login/token/redirect?
stateToken=02.id.i224I4bxORCa1dAC1xD_v1nWU3t645m50eprGyURhttp://localhost:8081/login?
code=DQTcQ8pJKVkIBmWDinYP54S6OGzWuX6pBnUpOZN4Ms8&state=wLmpI1http://localhost:8081/
成功访问到资源
====================================
修改代码开个8080端口,然后在OKTA中配置以下重定向的URL,启动项目,无痕模式发现登录不了,因为8081已经登录了
OKTA==springboot2.5.4整合OKTA实现单点登录demo相关推荐
- CAS5.3服务器搭建及SpringBoot整合CAS实现单点登录
CAS5.3服务器搭建及SpringBoot整合CAS实现单点登录 1.1 什么是单点登录 1.2 什么是CAS 1.3 CAS服务端部署 1.template下载 1.4 客户端搭建 1.1 什么是 ...
- C# ASP.NET程序员整合Java门户单点登录PHPwind论坛博客软件集成项目经验总结
为什么80%的码农都做不了架构师?>>> 有人曾问,如何正确估算项目周期?你是天天写C#程序的程序员,若做了一个 PHPwind 的单点登录,那估计需要几天时间? 客户只提了一 ...
- SpringSecurity整合Redis实现单点登录及认证返回json数据
前一阵刚研究了shiro框架,现在再来研究一下SpringSecurity. SpringSecurity是由spring团队开发的,为web应用安全性提供了完整的解决方案的框架.虽然现在使用spri ...
- spring boot整合Shiro实现单点登录
默认情况下,Shiro已经为我们实现了和Cas的集成,我们加入集成的一些配置就ok了 1.加入shiro-cas包 <!-- shiro整合cas单点 --><dependency& ...
- (附源码)Spring Boot 框架整合 OAuth2 实现单点登录 SSO 详细完整源码教程!
1. 前言 技术这东西吧,看别人写的好像很简单似的,到自己去写的时候就各种问题,"一看就会,一做就错".网上关于实现SSO的文章一大堆,但是当你真的照着写的时候就会发现根本不是那 ...
- SpringBoot整合Keycloak实现单点登录
Keycloak是一个开源的身份和权限访问管理工具,轻松为应用程序和安全服务添加身份验证,无需处理储存用户或者验证用户,其提供用户联合.强健的身份验证.用户管理和细粒度授权等功能. 1. 搭建Keyc ...
- SpringSecurity3整合CAS实现单点登录
SpringSecurity本身已经做好了与CAS的集成工作,只需要我们做简单配置就可以了 步骤1 spring-cas.xml配置文件内容如下(完整版) <?xml version=" ...
- SpringBoot 简单实现仿CAS单点登录系统
SpringBoot 简单实现仿CAS单点登录系统 新境界开源开源SSO项目介绍 新境界开源SSO项目实现原理大致如下: 新境界开源SSO项目登录流程介绍 新境界开源SSO项目授权登录流程介绍 新境界 ...
- 京东ai NeuHub单点登录
<?php namespace Home\Controller; use Think\Controller; /**** desc:京东ai授权单点登录demo -thinkphp ** */ ...
最新文章
- 线段树练习 3P3372 【模板】线段树 1
- 5分钟教你写出一份完美的PRD文档(附案例)
- java基础----递归实现文件搜索
- python 底层原理processpoolexecutor_python 多进程并行编程 ProcessPoolExecutor的实现
- JVM进阶之路, 不然又要被面试官吊打了
- 夯实基础,彻底掌握js的核心技术(一)
- python爬虫天气实例scrapy_2017.08.04 Python网络爬虫之Scrapy爬虫实战二 天气预报...
- 【SpringCloud】服务降级 Hystrix 断路器
- 2005/2/21 开始查阅有关gis的相关信息
- 索尼工厂被迫停止生产,日本地震带来的冲击可能不止于此
- Linux命令(压缩,解压rar)
- 体外肿瘤细胞敏感性分析试剂盒 实验原理
- 混合云架构下的安全风险分析和安全解决方案建议
- python alpha通道_去除图像中的alpha通道或透明度
- 标签设计软件如何设计注册商标标识
- 360无线wifi 无法连接服务器,360wifi连接上但上不了网的解决方法
- 瑞幸咖啡,不过是又一个“逃离美团者”
- 缠论-2011.4.11晚
- java面试的笔试题
- html中将scss转编译为css,SASS把scss转化为css的四种转化方式与命令
热门文章
- 全球与中国有机溴衍生物市场深度调研与前景方向预测报告2022年版
- 三年功能测试现在已经有无力感了,感觉跟不上时代的变化了
- spark1.1.0部署standalone分布式集群
- 手机电台广播在线收听 - fm 电台频道大全
- 计算机硬盘用u盘维修,U盘装机大师修复磁盘坏道详细教程
- effective c++20 尽量以传引用代替传参,pass-by-reference-to-const 代替pass-by-value
- xp 应用计算机设置在哪里打开,XP电脑开机启动项在哪里设置 修改电脑开机启动项的技巧...
- 爬取东方财富股吧中评论数据
- 向日葵Linux命令行安装,向日葵X版Linux安装教程
- php 的时间戳时区,PHP中时间戳和时区