本系列文之後也會置於個人網站
因為略過了一些JWT格式細節分析。所以這部分也有部分不會好好提到
到目前爲止,爲何不同應用可以使用同一個帳號登入,已經在說明Client解釋過。這是在相關系統的應用下,那麼...沒直接相關的系統呢?譬如:使用Google登入。像這種使用不同帳號系統登入的方式,在Keycloak分成兩種。第三方系統登入,這篇僅會說明與 OAuth / Open-Id 相關的一種。如果你使用過Firebase、Auth0等服務,或是看過使用Google、Facebook、Microsoft、GitHub帳號登入的應用,對就是這類。這種社群帳號登入(Social Login)的方式,與前幾天提到的內容相關,而且可以在Keycloak實現。
鐵人賽只會實現而已,一些細節和更多的範例並不會提到。
(雖然原本就計劃寫)
Keycloak支援多種社群帳號登入。僅需要透過簡單的設定,就可以使用Github、Google等社群帳號進行登入。現在就先以GitHub帳號登入爲例,說明如何設定。
首先,你需要先有GitHub的開發帳號。然後在設定(Setting)頁面找到「Developer settings」。
然後選擇「OAuth Apps」,並註冊一個新的應用(Register a new Application)。
然後連如一些設定訊息:
Example Keycloak App
http://localhost:4200/
http://localhost:8080/auth/realms/quick-start/broker/github/endpoint
其中最重要的是Authorization callback URL。
最後產生Client secret。點選「Generate a new client secret」按鈕,並先記住 Client ID 和 產生的 Client secret , 晚點會用到。
在Realm設定選單找到「Identity Providers」,然後添加個「GitHub」的provider。
將剛剛記住的Client Id和Client Secret填入相對的設定欄位。
回到「快速開始」應用登入:
然後會發現下面多了一個「sign in with GitHub」的選項。
在登入GitHub後會跳出授權畫面。接著在點擊「Authorize」
然後會要求填入一些基本訊息:
接著才是授權「快速開始」應用的畫面。接受後就回到「快速開始」的應用,並已經是登入狀態。
在User部分,可以看到多了一個帳號。
在這個帳號設定下,可以看到有一個「Identity Provider Links」頁籤,並記錄的與GitHub連接的訊息。之後這個帳號就可以使用GitHub帳號登入。