本系列文之後也會置於個人網站
其實除了使用GitHub等社群帳號登入外,Keycloak也可以作爲Open-Id登入的提供者(Provider)。接著需要使用Keycloak本身來實現社群帳號登入,因爲這樣子可以看到更多細節。
現在,需要一個新的帳號系統。你可以在建立一個Keycloak伺服器,或是建立一個新的Realm。不同Realm的帳號系統是獨立不相干擾的,所以這裏就先建議一個新的Realm -- G00gle
。
像似處理以GitHub帳號登入時,需要在新的Realm下,建立一個新的Client:
oauth-quick-start
http://localhost:8080/auth/realms/quick-start/
留意URL裡的realm是
quick-start
將Access Type改成confidential
儲存後,到Credentials頁籤,記住Client Secret。
這裏,故意同樣建立帳號--bob
,這次要將不同帳號系統的帳號,連接到已經存在的帳號下。然後同樣在 「Credentials」頁籤下建立登入密碼。此外,你還可以先設定好email、First Name、Last Name等訊息。
接著回到「quick-start」的realm。同樣到「Identity Providers」設定頁面,添加「Keycloak OpenId Connect」的Provider。
然後拉到下面與OpenID Connect相關的設定
http://localhost:8080/auth/realms/G00gle/protocol/openid-connect/auth
http://localhost:8080/auth/realms/G00gle/protocol/openid-connect/token
Client secret sent as post
oauth-quick-start
<方才記錄下來到Client Secret>
留意URL裡的realm是
G00gle
到「快速開始」應用登入。這次可以再發現多一個「keycloak-oidc」的選項。
接著可以用剛剛建立的帳號登入到「G00gle」。
然後會要求填入一些基本訊息:
不同的是,猶豫帳號相同,所以有所衝突。點選「Add to existing account」將新建立的帳號連接到已存在的帳號。
然後會要求驗證擁有已存在的帳號的權限。
留意這次登入的是「quick-start」
同樣在「Identity Providers」的設定頁面多了keycloak-oidc
而已存在的帳號--bob,同樣在帳號設定下的「Identity Provider Links」頁籤也多了一些與keycloak-oidc有關的訊息。
雖然還有一些細節沒有探討,但是已鐵人賽來說,Open-Id Connect也就到這邊爲止了。
對技術相關內容有興趣的話,歡迎關注我的網站
這是加碼嗎 XDD
按鈕還在!再寫一個禮拜,看它什麼時候消失
這次都特別寄信給小財神詢問了
哈哈哈可以算是吧!本就有打算寫超過30天,但也已經縮減了部分內容。
到目前爲止概念篇的內容也就真正告一段落了(就原計劃其實應該還有一大段落,但那部分寫起來一定很累)
Secure Microservices using Keycloak
https://www.youtube.com/watch?v=mPPhcU7oWDU&t=10862s