背景:新項(xiàng)目準(zhǔn)備用SSO來整合之前多個(gè)項(xiàng)目的登錄和權(quán)限,同時(shí)引入網(wǎng)關(guān)來做后續(xù)的服務(wù)限流之類的操作,所以搭建了下面這個(gè)系統(tǒng)雛形。
關(guān)鍵詞:Spring Gateway, Spring Security, JWT, OAuth2, Nacos, Redis, Danymic datasource, Javax,?thymeleaf
如果對(duì)上面這些技術(shù)感興趣,可以繼續(xù)往下閱讀
如果只對(duì)結(jié)果感興趣,直接拖到最后看代碼
前置知識(shí)點(diǎn):
1,Nacos安裝?
?Nacos搭建和使用保姆級(jí)教程_nacos 搭建_東皋長(zhǎng)歌的博客-CSDN博客
2,動(dòng)態(tài)數(shù)據(jù)源配置
Spring 多數(shù)據(jù)源方法級(jí)別注解實(shí)現(xiàn)_東皋長(zhǎng)歌的博客-CSDN博客
1, 基于網(wǎng)關(guān)的權(quán)限中臺(tái)架構(gòu)
2,JWT實(shí)現(xiàn)Spring Security
通過JWT實(shí)現(xiàn)token的生成、驗(yàn)證、注銷,token作為全局權(quán)限驗(yàn)證的唯一憑證
3,OAuth2 認(rèn)證
0Auth2 有4種內(nèi)置驗(yàn)證模式,實(shí)現(xiàn)OAuth2的驗(yàn)證標(biāo)準(zhǔn),從而獲得訪問資源的token
3.1 密碼模式
3.2 客戶端模式
3.3 簡(jiǎn)化模式
3.4 授權(quán)碼模式
3.5 擴(kuò)展的手機(jī)密碼模式
3.6 擴(kuò)展的手機(jī)驗(yàn)證碼模式
?
3.7 擴(kuò)展的動(dòng)態(tài)口令模式
??????Java實(shí)現(xiàn)OTP二次驗(yàn)證_東皋長(zhǎng)歌的博客-CSDN博客首先簡(jiǎn)單介紹一下OTP:簡(jiǎn)單就是說,一個(gè)時(shí)長(zhǎng)30秒的動(dòng)態(tài)密碼,和賬號(hào)綁定了,如果需要做身份驗(yàn)證的話,可以用這個(gè)動(dòng)態(tài)碼做二次驗(yàn)證。更簡(jiǎn)單說,就是一個(gè)安全要求更高的身份驗(yàn)證方式,一個(gè)字,牛!廢話不多說,開干!https://blog.csdn.net/wangerrong/article/details/132412282
?
4,RBAC
基于用戶角色權(quán)限的訪問控制設(shè)置
5,體驗(yàn)驗(yàn)證
注意: 全部是通過網(wǎng)關(guān)去訪問的,網(wǎng)關(guān)地址為:http://你的服務(wù)器IP:9200
5.1 簡(jiǎn)化模式
驗(yàn)證成功之后,跳轉(zhuǎn)到指定網(wǎng)頁
http://你的服務(wù)器IP:9200/oauth/authorize?response_type=token&client_id=phone&redirect_uri=http://www.baidu.com&scope=all
5.2 授權(quán)碼模式
獲得授權(quán)碼,然后拿授權(quán)碼拿token
http://你的服務(wù)器IP:9200/oauth/authorize?client_id=test&response_type=code&scope=all&redirect_uri=百度一下,你就知道
6,接入步驟
6.1 添加client
6.2 新增應(yīng)用,注冊(cè)到Nacos
6.3 所有應(yīng)用都通過網(wǎng)關(guān)訪問
7,代碼
https://download.csdn.net/download/wangerrong/88201409?spm=1001.2014.3001.5503
8,輔助工具
8.1? 發(fā)送驗(yàn)證碼(type=1是通過郵箱,type=2是通過手機(jī)短信(還沒實(shí)現(xiàn),因?yàn)闆]錢發(fā)短信,不過接入進(jìn)來也很簡(jiǎn)單))
http://你的服務(wù)器IP:9200/auth-api/message/verifycode?phone=17621210366&type=1
9,寫在最后的也很重要
上面寫的比較簡(jiǎn)單,因?yàn)橹虚g的坑實(shí)在是太多了,全網(wǎng)沒有一個(gè)全面的可用的Spring gateway+Spring Security+OAuth2 的例子,實(shí)在是很遺憾,在找了N多文檔之后,才完成了上面的代碼。
當(dāng)然也有一個(gè)OAuth2寫得比較好的,大家可以看看
Spring Cloud Security OAuth2.0 開發(fā)實(shí)戰(zhàn) | 一本冊(cè)子
真的有兩天,找資料找的吐血,好在是慢慢發(fā)現(xiàn),這玩意兒也就那樣!
希望對(duì)大家有幫助!
先挖幾個(gè)坑
1,OAuth2 知多少
2,JWT 確實(shí)很好用
3,Spring Gateway+OAuth2+Spring Security代碼解析
4,自定義OAuth2認(rèn)證模式
希望有時(shí)間落實(shí)下來~
碼字不易,記得點(diǎn)贊關(guān)注喲!文章來源:http://www.zghlxwxcb.cn/news/detail-640149.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-640149.html
到了這里,關(guān)于Spring Gateway+Security+OAuth2+RBAC 實(shí)現(xiàn)SSO統(tǒng)一認(rèn)證平臺(tái)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!