又LAG隨性筆記
  • 關於我
  • 作品集
  • 生活隨筆
  • 與我聯絡
  • 隨手扎

隨手扎

May 18, 2022

【用Keycloak學習身份驗證與授權】系列目錄

本系列同樣發表於iThome體人賽 - 用Keycloak學習身份驗證與授權。

本頁後面還有一些小後記喔~

  • 【用Keycloak學習身份驗證與授權01】Quick Start(1)
  • 【用Keycloak學習身份驗證與授權02】Quick Start(2)
  • 【用Keycloak學習身份驗證與授權03】淺談身份驗證與授權(1)
  • 【用Keycloak學習身份驗證與授權04】淺談身份驗證與授權(2)
  • 【用Keycloak學習身份驗證與授權05】什麼是Keycloak
  • 【用Keycloak學習身份驗證與授權06】Keycloak的替代品
  • 【用Keycloak學習身份驗證與授權07】什麼是OAuth
  • 【用Keycloak學習身份驗證與授權08】OAuth 2
  • 【用Keycloak學習身份驗證與授權09】再談身份驗證與授權
  • 【用Keycloak學習身份驗證與授權10】深入OAuth 2
May 17, 2022

【用Keycloak學習身份驗證與授權33】Device Code(4)

這次應用使用PySide來實現界面;qrcode來產生需要的QR Code;並使用requests來與身份驗證與授權伺服器的API溝通。現在透過pip進行安裝需要的packages。

pip install PySide6 requests qrcode

其實本來可以考慮用electron.js,但是基於一些考量,最後決定使用PySide。

在昨天,透過Qt Designer建立了兩個需要的使用者界面,今天來實現邏輯部分。

建立Widget

在之前所設計的ui檔案分別是:example-device-code-app.ui和login-dialog.ui。這部分會分別將這兩份載入到類別內使用。所以同樣來建立兩個Widgets:ExampleDeviceCodeApp和loginDialog。

May 17, 2022

【用Keycloak學習身份驗證與授權32】Device Code(3)

本文接續device code(2)

現在已經知道了Device Code的登入流程了,那麼實際應用起來是怎麼樣的呢? 本片來實現一個可以使用Device Code Flow登入的應用。

使用者界面設計

首先,與「快速開始」應用相同,同樣需要一個顯式使用者資訊的地方,以及登入與登出的按鈕。

是的非常簡單。但悄悄先回到RCF8628,有一部分描述使用者界面的範本。該界面建議包含:操作說明、登入連接和user_code。

May 17, 2022

【用Keycloak學習身份驗證與授權31】Open ID Connect & Social Login(2)

Keycloak Open-Id Connect

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

建立新的Realm

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

May 17, 2022

【用Keycloak學習身份驗證與授權30】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帳號登入

May 17, 2022

【用Keycloak學習身份驗證與授權29】JWT權杖格式介紹(1)

總覺得…直接開始說明什麼是JWT格式來著。但感覺這樣會很無聊,不如我們從已經拿到的Token來看吧!

至今爲止,除了存取權杖(access_token)、更新權杖(refresh_token)外,還拿到過識別權杖(id_token)。仔細看三者,都有兩個「.」可以將權杖分成三個部份。

這些權杖都可以透過JWT.io去解析。總之先透過Password Grant Flow取得access_token和refresh_token,或是透過「快速開始」應用取得id_token。

  • ««
  • «
  • 1
  • 2
  • 3
  •  … 
  • 6
  • 7
  • 8
  •  … 
  • 34
  • »
  • »»
© 又LAG隨性筆記 2025