keycloak~JWT各欄位說明及擴展欄位的方法

来源:https://www.cnblogs.com/lori/archive/2023/02/03/17088298.html
-Advertisement-
Play Games

jwt擴展欄位介紹 為了實現業務的定製化需求和開發人員使用的便利,對kc的JWT進行了擴展,這個擴展欄位在解析JWT之後都可以看到。 jwt的payload { "exp": 1675329802, "iat": 1675329622, "jti": "2a80e925-b9ce-464f-822d ...


jwt擴展欄位介紹

為了實現業務的定製化需求和開發人員使用的便利,對kc的JWT進行了擴展,這個擴展欄位在解析JWT之後都可以看到。

jwt的payload

{
  "exp": 1675329802,
  "iat": 1675329622,
  "jti": "2a80e925-b9ce-464f-822d-5c801ff4e8a0",
  "iss": "https://xxx.xxx.com/auth/realms/xxx",
  "aud": ["case", "realm-management", "account"],
  "sub": "d21a5ec8-30c5-4db6-a26a-17ac4b3fcfd4",
  "typ": "Bearer",
  "azp": "democlient",
  "session_state": "c6b5fdbc-38fd-45d7-bde1-de7cc18837d3",
  "acr": "1",
  "allowed-origins": ["*"],
  "realm_access": {
    "roles": ["manage-users", "query-realms", "query-clients", "query-users"]
  },
  "resource_access": {
    "realm-management": {
      "roles": ["view-realm", "manage-authorization", "manage-clients", "query-groups"]
    },
    "account": {
      "roles": ["manage-account", "view-applications"]
    }
  },
  "scope": "roles my-application-scope extension-roles email profile",
  "phoneNumber": "13521972991",
  "email_verified": true,
  "loginType": "password",
  "nickname": "張三",
  "isGroupUser": 1,
  "extension_roles": {
    "weixin": ["product"]
  },
  "preferred_username": "test"
}

公用欄位

  • exp token過期時間戳
  • iat token生成時間戳
  • jti token的唯一身份標識
  • iss token的發行機制,kc中的域,例如:https://cas.pkulaw.com/auth/realms/fabao
  • aud 授權到的客戶端
  • sub 當前用戶ID
  • typ 認證方式
  • azp 當前客戶端client_id
  • session_state 當前會話id,瀏覽器中的AUTH_SESSION_ID和AUTH_SESSION_ID_LEGACY
  • acr 如果clientSession通過cookie (SSO)進行身份驗證,則使用0,否則為1
  • allowed-origins 允許哪種功能變數名稱使用我們的token
  • realm_access 域的許可權
  • resource_access 客戶端(資源)許可權,kc允許你為用戶依照客戶端去授權
  • scope 客戶端模板,它將一類jwt中的屬性進行分類,通過這個scope模塊去渲染你的jwt欄位

個性化欄位

用戶屬性:是user_attribute表,在kc管理平臺中,可以通過用戶詳情-屬性[attributes]查看

  • phoneNumber 用戶手機號
  • email_verified 是否驗證了郵箱
  • loginType 登錄方式【password,weixin,carsi,wechat-work】
  • nickname 用戶昵稱【如果用戶屬性nickname時就用它;否則用戶名以wx或者phone開頭,並且用戶屬性手機號不為空,就用手機號;否則使用用戶名username】
  • isGroupUser 是否為組管理員【1是、0否】
  • extension_roles.weixin 擴展角色中的微信角色
  • preferred_username kc中的用戶名username

為客戶端配置自定義屬性

  1. 通過客戶端模板,去添加一個模板,通過mappers將多個相關的屬性添加到這個模板里

  2. 選擇指定客戶端-》客戶端模板-》添加已有的模板

作者:倉儲大叔,張占嶺,
榮譽:微軟MVP
QQ:853066980

支付寶掃一掃,為大叔打賞!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉眼間上次寫文章已經是 2022年12月15日的事情啦,本來從2022年7月份開始寫作之後保持著每周一篇,然而從12月15日後斷更了這麼久,經歷了,隔離、陽、過年、從今天開始繼續堅持寫作,本片文章給大家分享 SqlServer服務中利用觸發器對指定賬戶進行登錄ip限制從而提升賬戶的安全性,這樣可以靈 ...
  • 數據類型 整數數據類型 特殊說明: ​ 對於整數類型,MySQL還支持在類型名稱後面加小括弧(M),而小括弧中的M表示顯示寬度,M的取值範圍是(0, 255)**。int(M)這個M在欄位的屬性中指定了unsigned(無符號)和zerofill(零填充)的情況下才有意義。**表示當整數值不夠M位時 ...
  • 一、前言 很多企業管理系統,在單據及報表的使用時,都會提供小數點有效數字後0是否顯示的功能。在金蝶雲星空的BOS平臺,這個功能叫"隱藏尾0"。現在假如自己開發一個系統,提供可配置的"隱藏尾0"的功能,該如何實現呢?以下是資料庫開發方面的解決方案,僅供參考。 二、方案 方法一、將數據轉換為REAL類型 ...
  • 閱識風雲是華為雲信息大咖,擅長將複雜信息多元化呈現,其出品的一張圖(雲圖說)、深入淺出的博文(雲小課)或短視頻(雲視廳)總有一款能讓您快速上手華為雲。更多精彩內容請單擊此處。 摘要:GaussDB性能調優過程需要綜合考慮多方面因素,因此,調優人員應對系統軟體架構、軟硬體配置、資料庫配置參數、併發控制 ...
  • 華為 HMS Core 運動健康服務(HUAWEI Health Kit)提供原子化數據開放。應用在獲取用戶數據授權後,可通過介面訪問運動健康數據,對用戶數據進行讀寫等操作,為用戶提供運動健康類數據服務。 開發者應用在開發和測試階段訪問用戶運動或健康數據時,會有100個用戶的數量限制,需要通過“申請 ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 本文用一個簡單的 demo 講解 App端 半屏連續掃碼 的實現方式,包括(條形碼、二維碼等各種各樣的碼)。 我會從實現思路講起,如果你比較急可以直接跳到 動手實現 章節獲取代碼。 開發和運行環境 開發工具:HBuilderX 前端框架: ...
  • Web 頁面可以使用多種方式實現動畫效果,其中最常用的有兩種: CSS 動畫:通過 CSS 中的 transition 和 animation 屬性來實現動畫效果。CSS 動畫實現起來簡單,性能消耗小,支持廣泛。 JavaScript 動畫:通過 JavaScript 代碼來實現動畫效果。JavaS ...
  • At-rules規則是目前CSS中一種常見的語法規則,它使用一個"@"符號加一個關鍵詞定義,後面跟上語法區塊,如果沒有則以分號結束即可。 這種規則一般用於標識文檔、引入外部樣式、條件判斷等等,本文是對該規則的使用總結。 常用規則 @import @import 主要用於從其他樣式表導入新的樣式規則, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...