科技改變生活 · 科技引領未來
原文鏈接:https://mp.weixin.qq.com/s/yXSVbgkYIcJWPe4n2hSeUA原作者:macrozheng之前我們在學習Oauth2的時候,需要通過寫代碼來實現認證授權服務。最近發現一款可視化的安全框架Keyc
原文鏈接:https://mp.weixin.qq.com/s/yXSVbgkYIcJWPe4n2hSeUA
原作者:macrozheng
之前我們在學習Oauth2的時候,需要通過寫代碼來實現認證授權服務。最近發現一款可視化的安全框架Keycloak,只需幾個命令就可以快速搭建認證授權服務,無需自行開發。原生支持SpringBoot,使用起來非常簡單,推薦給大家!
簡介
Keycloak是一款開源的認證授權平臺,在Github上已有9.4k+Star。Keycloak功能眾多,可實現用戶注冊、社會化登錄、單點登錄、雙重認證 、LDAP集成等功能。
安裝
使用Docker搭建Keycloak服務非常簡單,兩個命令就完事了,我們將采用此種方式。
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
控制臺使用
接下來我們來體驗下Keycloak的管理控制臺,看看這個可視化安全框架有什么神奇的地方。
結合Oauth2使用
OAuth 2.0是用于授權的行業標準協議,在《Spring Cloud Security:Oauth2使用入門》一文中我們詳細介紹了Oauth2的使用,當然Keycloak也是支持的,下面我們通過調用接口的方式來體驗下。
兩種常用的授權模式
我們再回顧下兩種常用的Oauth2授權模式。
授權碼模式
密碼模式
密碼模式體驗
結合SpringBoot使用
接下來我們體驗下使用Keycloak保護SpringBoot應用的安全。由于Keycloak原生支持SpringBoot,所以使用起來還是很簡單的。
org.keycloak keycloak-spring-boot-starter 14.0.0
# Keycloak相關配置 keycloak: # 設置客戶端所在領域 realm: macrozheng # 設置Keycloak認證服務訪問路徑 auth-server-url: http://192.168.7.142:8080/auth # 設置客戶端ID resource: mall-tiny-keycloak # 設置為公開客戶端,不需要秘鑰即可訪問 public-client: true # 配置角色與可訪問路徑的對應關系 security-constraints: - auth-roles: - mall-tiny security-collections: - patterns: - '/brand/*' - '/swagger-ui/*'
總結
Keycloak是一款非常不錯的可視化安全框架,讓我們無需搭建認證服務即可完成認證和授權功能。原生支持SpringBoot,基本無需修改代碼即可集成,不愧為現代化的安全框架!
參考資料
項目源碼地址
https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-keycloak
何龍