<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          OAuth2 服務(wù)器Keycloak中的Realm

          共 1899字,需瀏覽 4分鐘

           ·

          2021-09-07 10:49

          前幾篇我和大家一起對Keycloak進行了粗略的了解。隨著逐步的了解,我發(fā)現(xiàn)進入了一個誤區(qū),原本以為Spring Security整合Keycloak的重心在于Spring Security這一方面,事實上,我發(fā)現(xiàn)Keycloak關(guān)于Spring Security的Adapter的幾個過濾器并沒有可操作的空間,或許需要等弄明白了Keycloak本身之后才能有突破。所以今天我要弄明白的是Keycloak中的Realm。

          Realm

          Realm翻譯成中文為領(lǐng)域。用來邏輯隔離一些特定空間,有點多租戶的感覺,不同的Realm之間互相隔離,有各自的特色配置,互不影響。

          什么時候用到Realm

          當(dāng)特定數(shù)量用戶之間需要隔離的時候、一系列服務(wù)需要統(tǒng)一進行資源管理的時候就用到了Realm??赡芪颐枋龅牟粔蛉?,至少目前我能感覺到的就是這樣。

          realm包含的核心概念

          比如我們需要開發(fā)一個應(yīng)用,應(yīng)用部署域名為felord.cn。我們可以這么定義一個名稱為felord.cn的Realm,來管理該應(yīng)用的角色、資源、和客戶端,客戶端開發(fā)可以專注于業(yè)務(wù)。整個Keycloak就像一個開放平臺一樣,集中式管理Realm的生命周期,這些Realm之間可以在OIDC協(xié)議下互聯(lián)互通。

          Master Realm

          如果你看過之前我關(guān)于Keycloak的文章,可能會記得第一次啟動Keycloak時會接觸一個叫Master的Realm。這個是Keycloak內(nèi)建的Realm,它的作用有點類似Linux中的root用戶,主要是管理其它的Realm,Master Realm中的管理員賬戶有權(quán)查看和管理在Keycloak服務(wù)器實例上創(chuàng)建的任何其它Realm。

          而且你會發(fā)現(xiàn)Master Realm創(chuàng)建的領(lǐng)域?qū)嶋H上是Master Realm的一個客戶端,甚至它自己都是自己的客戶端,而且名稱遵循<realm name>-realm

          而且你會發(fā)現(xiàn)Master Realm中創(chuàng)建的用戶可以賦予其獨有的兩種角色:

          • admin 超級管理員,擁有管理Keycloak服務(wù)器上任何realm的完全訪問權(quán)限。
          • create realm 擁有該角色就可以創(chuàng)建realm并獲得該realm的完全管理權(quán)。

          ?

          建議Master Realm用來管理其它Realm而不參與具體的業(yè)務(wù)。

          其它Realm

          其它Realm是指用Master創(chuàng)建的Realm。創(chuàng)建其它Realm非常簡單,通過Master Realm的管理員即可創(chuàng)建。創(chuàng)建成功會有一些選項可供配置,但是一般情況下使用默認(rèn)配置即可。

          設(shè)置Realm管理賬戶

          為前面我初始化的Realmfelord.cn創(chuàng)建獨立的管理員賬戶有兩種方式。

          使用Master用戶管理

          我們在Master Realm中建立一個用戶,并在其角色映射中剝奪admincreate-realm角色,同時在Client Roles中選中felord.cn-realm 把該客戶端的所有角色都賦予建立的用戶。例如:

          這個用戶屬于Master的用戶,但是管理著felord.cnRealm。你可以通過下面的格式的鏈接進行控制臺管理操作:

          http://<serverurl>/auth/admin/master/console/#/realms/{realm-name}
          使用領(lǐng)域客戶端用戶管理

          另一種方法是在felord.cn領(lǐng)域下建立一個用戶,把其客戶端realm-management的所有客戶端角色賦予給該用戶。這個用戶屬于felord.cn,因此只能通過以下鏈接登錄管理控制臺管理該領(lǐng)域:

          http://<serverurl>/auth/admin/{realm-name}/console

          ?

          一個用戶只能從屬于一個Realm。

          擴展

          Keycloak Admin Client是通過API操作管理Realm的一個客戶端工具,我在上一篇已經(jīng)介紹過了。結(jié)合本篇的一些概念可能你會更加深刻的理解如果操作管理Realm。

          往期推薦

          Java 17 將至,可能帶來哪些新特性呢?

          機械妖姬上門要源碼后續(xù)結(jié)果來了!

          重磅消息:Spring 6 和Spring Boot 3

          短信驗證碼登錄流程思路及詳細(xì)步驟

          反996,竟反掉了17%的薪水?!而隔壁的房貸還在漲,怎么就越反越糟糕了呢?


          瀏覽 53
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码在线免费观看 | 亚洲免费AV网站 | 国产无码15p | 亚洲成人黄色在线 | 日本理论片一道本 |