iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
Software Development

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

Day24 - 【概念篇】Keycloak使用基本概念 - 第一部分: Client

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


Client與一些安全相關的設定

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

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

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

或是每三分鐘就要更新一次存取權杖

Realm像是管理的單位,而Client就是應用的單位。儘管實際上可能並沒有應用,而只是建立了一些規則、特殊祕密(如: Client Credentials Flow)。只用應用實際符合這些規則,才實際綁定了Keycloak的Client,也才實際有了應用。

而應用除了是一般容易接觸到的Web App,還包含管理資源的資源伺服器。Web App和資源伺服器可以是獨立但相互作用的兩個Client。

Web App的身份驗證階段可以交給Keycloak,也就是Keycloak充當了Web App的執行器。同樣對於資源伺服器而言,Keycloak可以作為授權處理的執行器,並儲存著相關的規則與政策。

單點登入 Single Sign On(SSO)

在同一個Realm下,使用同一個瀏覽器,不同的Client會共用同一個登入會話(SSO Session)。你可能已經注意到了,當我們在「快速開始」的應用登入後,在「OAuth_Tools」的應用中,就直接知道使用於登入的帳號bob,而無須在重新輸入一次密碼。僅管這兩個Web App的Domain完全不一樣。

security-admin-console

image alt

另外,特別的是 Administration Console 實際上也是一個在Master Realm下的Client。甚至Master Realm本身和建立的quick-start Realm也是


上一篇
Day23 - 【概念篇】Keycloak使用基本概念 - 第一部分: Realm
下一篇
Day25 - 【概念篇】Keycloak使用基本概念 - 第一部分: Scopes & Claims
系列文
用Keycloak學習身份驗證與授權40

尚未有邦友留言

立即登入留言