iT邦幫忙

2021 iThome 鐵人賽

0
Software Development

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

Day31 - 【概念篇】Open-ID Connect & Social Login(2)

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


Keycloak Open-Id Connect

其實除了使用GitHub等社群帳號登入外,Keycloak也可以作爲Open-Id登入的提供者(Provider)。接著需要使用Keycloak本身來實現社群帳號登入,因爲這樣子可以看到更多細節。

建立新的Realm

現在,需要一個新的帳號系統。你可以在建立一個Keycloak伺服器,或是建立一個新的Realm。不同Realm的帳號系統是獨立不相干擾的,所以這裏就先建議一個新的Realm -- G00gle

像似處理以GitHub帳號登入時,需要在新的Realm下,建立一個新的Client:

  • Open Id: oauth-quick-start
  • Root URL: 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相關的設定

  • Authorization URL: http://localhost:8080/auth/realms/G00gle/protocol/openid-connect/auth
  • Token URL: http://localhost:8080/auth/realms/G00gle/protocol/openid-connect/token
  • Client Authentication: Client secret sent as post
  • Client ID: oauth-quick-start
  • Client Secret: <方才記錄下來到Client Secret>

留意URL裡的realm是G00gle

登入「快速開始」

到「快速開始」應用登入。這次可以再發現多一個「keycloak-oidc」的選項。

接著可以用剛剛建立的帳號登入到「G00gle」。

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

不同的是,猶豫帳號相同,所以有所衝突。點選「Add to existing account」將新建立的帳號連接到已存在的帳號。

然後會要求驗證擁有已存在的帳號的權限。

留意這次登入的是「quick-start」

Keycloak的相關改變

同樣在「Identity Providers」的設定頁面多了keycloak-oidc

而已存在的帳號--bob,同樣在帳號設定下的「Identity Provider Links」頁籤也多了一些與keycloak-oidc有關的訊息。

雖然還有一些細節沒有探討,但是已鐵人賽來說,Open-Id Connect也就到這邊爲止了。
對技術相關內容有興趣的話,歡迎關注我的網站


上一篇
Day30 - 【概念篇】Open-ID Connect & Social Login(1)
下一篇
【雜談】 今天就來點閒聊吧 - 鐵人賽觀察①
系列文
用Keycloak學習身份驗證與授權41
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
lulu_meat
iT邦研究生 5 級 ‧ 2021-10-18 13:51:21

這是加碼嗎 XDD

lagagain iT邦新手 2 級 ‧ 2021-10-19 06:31:51 檢舉

按鈕還在!再寫一個禮拜,看它什麼時候消失/images/emoticon/emoticon18.gif

/images/emoticon/emoticon80.gif /images/emoticon/emoticon23.gif
這次都特別寄信給小財神詢問了/images/emoticon/emoticon46.gif


哈哈哈可以算是吧!本就有打算寫超過30天,但也已經縮減了部分內容。
到目前爲止概念篇的內容也就真正告一段落了(就原計劃其實應該還有一大段落,但那部分寫起來一定很累)

我要留言

立即登入留言