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

隨手扎

May 17, 2022

【用Keycloak學習身份驗證與授權28】Role

在帳號系統下,除了帳號本身與帳號群組外,通常還存在一個非常重要的部分–角色(Role),更有基於角色的存取授權方式(RBAC)。

寫到有點累了,沒意外的話之後是會提到RBAC

帳號如果代表一個人,這個人可能有多個角色身份。可能是個老師、主任、校長;可能是爸媽、叔姨;可能是員工、部長、處長、老闆,且可能有一群人擁有同一種角色。角色和帳號群組有點像,但在Keycloak是兩個概念。除此之外,在Keycloak還分成兩類型角色– Realm Roles 和 Client Roles 。

建立 Realm Roles

首先,你可以建立Realm共用的角色,像是員工、老闆等等較爲通用的角色。

點選在 Realm 選單下的 Roles ,然後再點選 Add Role :

May 17, 2022

【用Keycloak學習身份驗證與授權27】User & Claim & Profile

接著來看看爲什麼更新帳號資訊,在「快速開始」會有那些變化。

這與client scope和claim有關。關於後者之後會在詳細說說,而目前就先了解一下這個現象發生的原因。

首先,在我們取得token的時候曾申明需要的scope爲openid profile email。其中profile這個scope爲這次變化的主要原因。

來到Keycloak管理選單下的 Client Scopes ,然後找到 profile 。

接著將頁籤切換到 Mappers , 你會看見一堆與 User Attribute 有關的設定。

May 17, 2022

【用Keycloak學習身份驗證與授權26】User & Group

帳號(User)

基本訊息

接著來看看與帳號有關的設定。

在之前,已經建立過一帳號–bob。過去學習實驗,也都以bob驗證身份。接著我們要來更新一下這個帳號。

首先看一下基本訊息:

來添加一些資訊:

  • Email: bob@fake.email
  • First Name: Bob
  • Last Name: Lee
  • Email Verified: ON

此外,可以要求使用者在必須做一些事情,譬如:驗證信箱、更新密碼、更新個人資訊等。

再次登入到應用–「快速開始」,可以看到有一些訊息也有些不同了。

May 17, 2022

【用Keycloak學習身份驗證與授權25】Scopes & Claims

這之前看到的scopes

之前已經看到我一些使用scope的地方:

接著要來看看是打哪來?在哪設定的?

May 17, 2022

【用Keycloak學習身份驗證與授權24】Clients

Client與一些安全相關的設定

在OAuth架構下的Client(客戶端)可以想象成是一個一個的應用程式。到目前爲止也已經建立過幾個Client:

這些Client有著自己的規則、資源、授權方式等。

可以複寫一些Realm的設定,包含產生存取權杖的方式。像是認爲RS256簽名不夠,需要使用到RS512:

May 17, 2022

【用Keycloak學習身份驗證與授權23】Realm

Realm,中文或許會翻作「域」,但基本很像是程式開發上,語言層面提供的包(package)或是命名空間(namespace)。或者可能可以更貼切的說是工作空間(workspace)。

你可以想象就像是一個企業、部門或是其他組織。有著相同的一些規範,同事們在同樣地工作空間生活、工作。但不同的企業、部門或是其他組織,可能會有類似的規範,但兩者不互相影響。

會特別有這個概念,是因爲Keycloak是可以建立多個Realm的。也就是,在同一間公司內,不同部門都可以有自己的Realm,制定部門自己的管理規範。或是特別爲外部客戶建立一個Realm,並制定特殊規範。

不同的Realm內,有著自己的帳號系統、密碼規範政策等。利用這個特性,之後也會用來更清楚的理解Open-Id。

你也可以同樣簡單視爲一個帳號資料庫、身份驗證伺服器。特別的是在會話成立期間,可以不需要再進行一次驗證,而這部分,會在提到Client時在多做說明。

如何建立一個Realm

要建立一個Realm是非常簡單。在之前也建立過「quick-start」這個Realm。也幾乎就只需要給個名字而已。

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