簡體   English   中英

keycloak中的自定義oidc

[英]custom oidc in keycloak

我有一個基於 spring 的應用程序,它為客戶端應用程序執行身份驗證和授權(基於 oauth2)。我現在想使用 keycloak 來管理我的授權,但我想保留我的 spring 代碼。 基本上我想使用我現有的身份驗證代碼作為 keycloak 中的外部身份提供者。

我正在考慮在客戶端應用程序中添加更改,以便它從我現有的 oauth 代碼(進行身份驗證)接收令牌,然后將此令牌與 keycloak 交換(用於 session 和授權管理)。 我怎樣才能做到這一點? keycloak需要做哪些配置?

我在這里閱讀了關於 keycloak 中的令牌交換的信息,但我不清楚我需要從現有身份驗證代碼發送的令牌類型。 https://www.keycloak.org/docs/latest/securing_apps/

以下是 OAuth2 角色的通常分布方式:

  • Keycloak 是授權服務器
  • Spring 服務是資源服務器
  • 前端是客戶端
  • 用戶是資源所有者

我懷疑您是否希望您的 Spring 服務也成為“授權服務器”(服務用戶身份)。 如果是這樣,我認為你不應該。

Keycloak(或任何其他 OpenID 提供者)應該是唯一的授權服務器。 Spring 和客戶端都應該配置為這樣使用它。

換種說法,Keycloak 負責用戶登錄並使用用戶 ID(主題)和權限(角色或其他)發出令牌。 架構中的其他層(客戶端和資源服務器)從令牌中獲取用戶信息並應用相關的安全檢查(spring 安全注釋、Angular 防護等)。

為一次聚會發布了一個單一存儲庫,其中包含最少的樣本,涉及 Spring 資源服務器和 Angular(使用 Ionic)客戶端與 Keycloak OpenID 授權服務器交談。 您可能會在瀏覽它時找到一些靈感。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM