中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

apisix~authz-keycloak插件介紹

參考:

kc插件源碼梳理及原理說明

如果只是進行(xing)keycloak頒發的token進行(xing)校(xiao)驗(簽名校(xiao)驗和有效期校(xiao)驗),那么我(wo)們(men)可以使用jwt-auth這(zhe)個(ge)插(cha)件(jian)實現,并且已(yi)經對這(zhe)個(ge)插(cha)件(jian)進行(xing)二次開發,支持jwt內容解析與向(xiang)下請求頭的傳遞。

作用

主要用到keycloak提供的uma遠程資源授權上面,它對于直接在keycloak后臺配置上游服務的資源權限keycloak~資源的遠程授權uma,進行代理,不需要上游(you)服(fu)務再去直(zhi)接對接keycloak。

原理

在lua插件中,實(shi)現了與(yu) keycloak服務(wu)端(duan)的(de)通(tong)訊(xun),你(ni)可(ke)以把(ba)這個插件當成是keycloak的(de)一個客戶(hu)端(duan)代理,這個客戶(hu)端(duan)是在keycloak上提前注冊的(de),它(ta)對應一個或者多個應用,應用下面有很(hen)多api資(zi)源(yuan),這些資(zi)源(yuan)可(ke)以通(tong)過keycloak的(de)uma進(jin)行管理。

插件配置參考

{
  "client_id": "pkulaw",
  "client_secret": "c0b7ab8e-485b-4a10-bff8-7c7d3f472096",
  "discovery": "//testcas.xxx.com/auth/realms/xx/.well-known/openid-configuration",
  "permissions": [
    "Default Resource"
  ],
  "realm": "fabao",
  "ssl_verify": false,
  "token_endpoint": "//testcas.xxx.com/auth/realms/xx/protocol/openid-connect/token"
}
  • client_id kc上的客戶端ID
  • client_secret 客戶端的密鑰,本插件不支持public類型的客戶端
  • discovery kc的開發接口地址,包含認證地址,登出地址,刷新token地址,公鑰地址等
  • permissions 一組資源,提前在kc的pkulaw這個客戶端上建立的資源,它是一組路由地址
  • realm kc上對應的域,相當于租戶,它下面的組,用戶,客戶端,角色都是隔離的
  • ssl_verify 是否開啟ssl證書驗證,如果是自簽名請關閉本項
  • token_endpoint kc的認證的地址

插件源碼功能點

  • 獲取header中的Authorization
  • 判斷是否需要密碼認證方式,如果需要會向kc發起登錄請求
  • 獲取jwt_token,從Authorization中截取Bearer 后面的部分
  • 如果沒有傳token,直接返回401
  • 解析kc中這個客戶端的資源列表,如果配置的資源不存在,直接400
  • 驗證token的有效性,這塊為在線校驗,token無效或者登錄出,返回401
  • 評估對配置的permisssion資源是否有權限,如無權限,返回403
  • token中包含了資源所需權限,方可正常訪問
posted @ 2024-05-16 10:26  張占嶺  閱讀(298)  評論(0)    收藏  舉報