本系列文之後也會置於個人網站
在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可以作為授權處理的執行器,並儲存著相關的規則與政策。
在同一個Realm下,使用同一個瀏覽器,不同的Client會共用同一個登入會話(SSO Session)。你可能已經注意到了,當我們在「快速開始」的應用登入後,在「OAuth_Tools」的應用中,就直接知道使用於登入的帳號bob
,而無須在重新輸入一次密碼。僅管這兩個Web App的Domain完全不一樣。
另外,特別的是 Administration Console 實際上也是一個在Master Realm下的Client。甚至Master Realm本身和建立的quick-start Realm也是