科技改變生活 · 科技引領(lǐng)未來
原文鏈接:https://mp.weixin.qq.com/s/yXSVbgkYIcJWPe4n2hSeUA原作者:macrozheng之前我們?cè)趯W(xué)習(xí)Oauth2的時(shí)候,需要通過寫代碼來實(shí)現(xiàn)認(rèn)證授權(quán)服務(wù)。最近發(fā)現(xiàn)一款可視化的安全框架Keyc
原文鏈接:https://mp.weixin.qq.com/s/yXSVbgkYIcJWPe4n2hSeUA
原作者:macrozheng
之前我們?cè)趯W(xué)習(xí)Oauth2的時(shí)候,需要通過寫代碼來實(shí)現(xiàn)認(rèn)證授權(quán)服務(wù)。最近發(fā)現(xiàn)一款可視化的安全框架Keycloak,只需幾個(gè)命令就可以快速搭建認(rèn)證授權(quán)服務(wù),無(wú)需自行開發(fā)。原生支持SpringBoot,使用起來非常簡(jiǎn)單,推薦給大家!
簡(jiǎn)介
Keycloak是一款開源的認(rèn)證授權(quán)平臺(tái),在Github上已有9.4k+Star。Keycloak功能眾多,可實(shí)現(xiàn)用戶注冊(cè)、社會(huì)化登錄、單點(diǎn)登錄、雙重認(rèn)證 、LDAP集成等功能。
安裝
使用Docker搭建Keycloak服務(wù)非常簡(jiǎn)單,兩個(gè)命令就完事了,我們將采用此種方式。
docker pull jboss/keycloak:14.0.0
docker run -p 8080:8080 --name keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -d jboss/keycloak:14.0.0
控制臺(tái)使用
接下來我們來體驗(yàn)下Keycloak的管理控制臺(tái),看看這個(gè)可視化安全框架有什么神奇的地方。
結(jié)合Oauth2使用
OAuth 2.0是用于授權(quán)的行業(yè)標(biāo)準(zhǔn)協(xié)議,在《Spring Cloud Security:Oauth2使用入門》一文中我們?cè)敿?xì)介紹了Oauth2的使用,當(dāng)然Keycloak也是支持的,下面我們通過調(diào)用接口的方式來體驗(yàn)下。
兩種常用的授權(quán)模式
我們?cè)倩仡櫹聝煞N常用的Oauth2授權(quán)模式。
授權(quán)碼模式
密碼模式
密碼模式體驗(yàn)
結(jié)合SpringBoot使用
接下來我們體驗(yàn)下使用Keycloak保護(hù)SpringBoot應(yīng)用的安全。由于Keycloak原生支持SpringBoot,所以使用起來還是很簡(jiǎn)單的。
org.keycloak keycloak-spring-boot-starter 14.0.0
# Keycloak相關(guān)配置 keycloak: # 設(shè)置客戶端所在領(lǐng)域 realm: macrozheng # 設(shè)置Keycloak認(rèn)證服務(wù)訪問路徑 auth-server-url: http://192.168.7.142:8080/auth # 設(shè)置客戶端ID resource: mall-tiny-keycloak # 設(shè)置為公開客戶端,不需要秘鑰即可訪問 public-client: true # 配置角色與可訪問路徑的對(duì)應(yīng)關(guān)系 security-constraints: - auth-roles: - mall-tiny security-collections: - patterns: - '/brand/*' - '/swagger-ui/*'
總結(jié)
Keycloak是一款非常不錯(cuò)的可視化安全框架,讓我們無(wú)需搭建認(rèn)證服務(wù)即可完成認(rèn)證和授權(quán)功能。原生支持SpringBoot,基本無(wú)需修改代碼即可集成,不愧為現(xiàn)代化的安全框架!
參考資料
項(xiàng)目源碼地址
https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-keycloak
何龍
版權(quán)所有 未經(jīng)許可不得轉(zhuǎn)載
增值電信業(yè)務(wù)經(jīng)營(yíng)許可證備案號(hào):遼ICP備14006349號(hào)
網(wǎng)站介紹 商務(wù)合作 免責(zé)聲明 - html - txt - xml