KeyCloak基礎概念


Users

是一種可以登錄系統的實體,可以擁有一些屬性,如email、username、address、phone number等, 可以加入組,成為組成員 可以分配角色

Authentication

識別和驗證用戶

Authorization

為用戶授權

Credentials

Keycloak用來識別和驗證用戶的一些數據,如密碼、一次性密碼、數字簽名、指紋。

Roles

  • 角色,用戶的一個分類,如管理員、普通用戶、管理者、普通雇員等
  • 應用程序一般會將權限分配給指定角色,而不是直接分配給用戶。
  • 角色分為Realm級別角色和client級別角色。
  • 用戶可以同時擁有Realm角色和不同client的client級別的角色。

User role mapping

一個用戶可以與0個或多個角色關聯,這些關聯關系可以被包含進token或assertions(斷言)中,applications可以根據這些映射關系來進行訪問控制。

Composite roles 復合角色

一個復合角色可以關聯多個普通角色,如復合角色superuser可以關聯sales-admin、order-entry-admin角色,如果用戶擁有superuser角色,則相當於同時擁有sales-admin和order-entry-admin角色。

Groups

  • 組是為了更方便的管理用戶
  • 可以為組定義屬性
  • 可以為組分配角色
  • 組成員自動繼承組的屬性和角色。

Realm 領域

  • 一個realm管理一系列user、Credentials、roles、groups。
  • 一個user隸屬於一個realm
  • 一個user也只能log in 一個realm
  • Realm彼此之間是隔離的
  • 每個realm只能管理和認證自己控制的user

Clients

Clients可以請求keycloak去認證一個user

大多數情況下,clients是一些應用和服務,這些application和service想要通過keycloak加固自己,並提供單點登錄解決方案。

Clients還可以僅僅請求認證信息或者訪問token,這樣他們可以安全的調用其他被keycloak保護的服務。

 

Client apapters

Client適配器 是一種插件,

這種插件是用來安裝在你的應用環境上的, 安裝后,可以與keycloak進行通信,並被keycloak保護。 Keycloak針對不同的應用環境提供了不同的適配器,可以下載。 有些應用環境keycloak沒有提供apapter,可以使用第三方開發的adapter。

 

realm

領域的名稱, 這是必需的。

resource

應用程序的client-id,每個應用程序都有一個用於標識該應用程序的client-id。 這是必需的。

realm-public-key

領域的公鑰,PEM格式。 您可以從管理控制台中獲取。 這是可選的,建議您不要進行設置。 如果未設置,則適配器將從Keycloak下載此文件,並且始終會在需要時重新下載它(例如Keycloak旋轉其密鑰)。 但是,如果設置了realm-public-key,那么適配器將永遠不會從Keycloak下載新密鑰,因此,當Keycloak旋轉其密鑰時,適配器會損壞。

auth-server-url

Keycloak服務器的基本URL。 所有其他Keycloak頁面和REST服務端點都從此派生。 通常采用https:// host:port / auth的形式。 這是必需的。

ssl-required

確保與Keycloak服務器之間的所有通信均通過HTTPS。 在生產中,這應該設置為全部。 這是可選的。 默認值為外部,這意味着外部請求默認情況下需要HTTPS。 有效值為“全部”,“外部”和“無”。

confidential-port

Keycloak服務器用於通過SSL / TLS進行安全連接的機密端口。 這是可選的。 默認值為8443。

use-resource-role-mappings

如果設置為true,則適配器將在令牌內部查找用戶的應用程序級角色映射。 如果為false,它將查看用戶角色映射的領域級別。 這是可選的。 默認值為false。

public-client

如果設置為true,則適配器不會將客戶端的憑據發送到Keycloak。 這是可選的。 默認值為false。

bearer-only

對於服務,應將其設置為true。 如果啟用,適配器將不會嘗試對用戶進行身份驗證,而僅驗證承載令牌。 這是可選的。 默認值為false。

autodetect-bearer-only

如果您的應用程序同時提供Web應用程序和Web服務(例如SOAP或REST),則應將其設置為true。 它允許您將Web應用程序的未經身份驗證的用戶重定向到Keycloak登錄頁面,但是將HTTP 401狀態代碼發送到未經身份驗證的SOAP或REST客戶端,因為他們不了解重定向至登錄頁面的方式。 Keycloak根據典型的標頭(例如X-Requested-With,SOAPAction或Accept)自動檢測SOAP或REST客戶端。 默認值為false。

enable-basic-auth

這告訴適配器也支持基本身份驗證。 如果啟用此選項,則還必須提供密碼。 這是可選的。 默認值為false。

expose-token

如果為true,則經過身份驗證的瀏覽器客戶端(通過JavaScript HTTP調用)可以通過URL root / k_query_bearer_token獲取簽名的訪問令牌。 這是可選的。 默認值為false。

credentials

指定應用程序的憑據。 這是一種對象表示法,其中密鑰是憑證類型,而值是憑證類型的值。 當前支持密碼和jwt。 只有具有“機密”訪問類型的客戶端才需要執行此操作。

connection-pool-size

此配置選項定義應與Keycloak服務器建立多少連接。 這是可選的。 預設值為20。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM