隨手扎
【用Keycloak學習身份驗證與授權05】什麼是Keycloak
終於要來好好介紹一下甚麼是Keycloak了~
收先先來看一下Keycloak的基本資訊:
- 名稱: Keycloak
- 開發使用的程式語言: Java
- 公用: 單點登入驗證與授權工具
- 許可協議: Apache License 2.0
- 公開倉庫: https://github.com/keycloak/keycloak
- 官方網站: https://www.keycloak.org
- 撰寫當下最新版本: 15.0.2 (2021年8月20日)
在 快速開始 提到過起始畫面有一些細節:
注意到右下角的 JBoss 和 JBoss Community。 是的, Keycloak 和JBoss是有關係的。 實際接觸過 JBoss 或 WildFly 應該會比我熟悉許多。 我只能夠從一部分查詢到的資料和自己使用及觀察的狀況來介紹一下。 所以同樣地,在我們使用 Docker 起動 Keycloak服務時,同樣有出現 JBoss 和 WildFly 。
其實這兩者也有非常密切的關係,JBoss是WildFly的前身。不過再回到 Keycloak ,同 WildFly 也是在 Red Hat 下的開源產品。 所以在我們第一天的「快速開始」裡,其實同樣有看到Red Hat(這次在左下角):
Keycloak是拿來做什麼的?
首先,他是一個單點登入(Single Sign On, SSO)系統服務。換句話說如果「快速開始」所展示的,他可以協助你驗證身份與管理會話(Session)。 除此之外,他可以嫁接許多現有的驗證系統,支援LDAP、keyberos。
此外支援多種社交登入(Social Login)。
以及支援多個標準協議,包含 OAuth 2.0 、 OpenID 和 saml 。 且支援授權服務。
關於我來看Keycloak
起初會看到 Keycloak 是因爲,當時在思考一個授權設計的相關軟體開發問題。然後授權又與驗證不是那麼容易分開來看。 找著找著就發現Keycloak這蠻有去的玩具。雖然文件上有些過時,但功能齊全、更新更讓我意外。
2020年底、2021年初,剛接觸時才12版,一部分OAuth的Flow也沒有實現。半年才過去一些,現在不但有了,主板號更是直接跳到15版。
- 2021年7月30 發佈 15.0.0 版
- 2021年8月7日 發佈 15.0.1 版
- 2021年8月20日 發佈 15.0.2 版
我並不清楚Red Hat這家公司對於開源產品的態度。也不清楚Keycloak的廣泛度。儘管調查的資料看到算是上游有高優先的產品, 但畢竟有時候花錢買服務要簡單多了。這點上Keycloak同樣也有,但我更早了解到的是 Firebase 和 Auth0 。
不過在了解過它的功能和這更新速度,我服了。此外,在我後來的一些需求尋找的工具中,也看得到一些與Keycloak配合的身影。
參考文獻
LINE Pay贊助 信用卡小額贊助