iT邦幫忙

2021 iThome 鐵人賽

0
Software Development

用Keycloak學習身份驗證與授權系列 第 32

Day30 - 【概念篇】Open-ID Connect & Social Login(1)

本系列文之後也會置於個人網站


因為略過了一些JWT格式細節分析。所以這部分也有部分不會好好提到

到目前爲止,爲何不同應用可以使用同一個帳號登入,已經在說明Client解釋過。這是在相關系統的應用下,那麼...沒直接相關的系統呢?譬如:使用Google登入。像這種使用不同帳號系統登入的方式,在Keycloak分成兩種。第三方系統登入,這篇僅會說明與 OAuth / Open-Id 相關的一種。如果你使用過Firebase、Auth0等服務,或是看過使用Google、Facebook、Microsoft、GitHub帳號登入的應用,對就是這類。這種社群帳號登入(Social Login)的方式,與前幾天提到的內容相關,而且可以在Keycloak實現。

鐵人賽只會實現而已,一些細節和更多的範例並不會提到。
(雖然原本就計劃寫)

Social Login 社群帳號登入

以GitHub帳號登入

Keycloak支援多種社群帳號登入。僅需要透過簡單的設定,就可以使用Github、Google等社群帳號進行登入。現在就先以GitHub帳號登入爲例,說明如何設定。

在GitHub建立登入應用

首先,你需要先有GitHub的開發帳號。然後在設定(Setting)頁面找到「Developer settings」。

然後選擇「OAuth Apps」,並註冊一個新的應用(Register a new Application)。

然後連如一些設定訊息:

  • Application name: Example Keycloak App
  • Homepage URL: http://localhost:4200/
  • Authorization callback URL: http://localhost:8080/auth/realms/quick-start/broker/github/endpoint

其中最重要的是Authorization callback URL

最後產生Client secret。點選「Generate a new client secret」按鈕,並先記住 Client ID 和 產生的 Client secret , 晚點會用到。

設定Keycloak

在Realm設定選單找到「Identity Providers」,然後添加個「GitHub」的provider。

將剛剛記住的Client IdClient Secret填入相對的設定欄位。

以GitHub帳號登入

回到「快速開始」應用登入:

然後會發現下面多了一個「sign in with GitHub」的選項。

在登入GitHub後會跳出授權畫面。接著在點擊「Authorize」

然後會要求填入一些基本訊息:

接著才是授權「快速開始」應用的畫面。接受後就回到「快速開始」的應用,並已經是登入狀態。

Keycloak的相關改變

在User部分,可以看到多了一個帳號。

在這個帳號設定下,可以看到有一個「Identity Provider Links」頁籤,並記錄的與GitHub連接的訊息。之後這個帳號就可以使用GitHub帳號登入。


上一篇
Day29 - 【概念篇】用Keycloak學習JWT權杖格式 - JWT權杖格式介紹(1)
下一篇
Day31 - 【概念篇】Open-ID Connect & Social Login(2)
系列文
用Keycloak學習身份驗證與授權40

尚未有邦友留言

立即登入留言