簡體   English   中英

外部 IDP 的 Keycloak 外部登錄頁面

[英]Keycloak external login page for external IDP

在我們的 spring boot 應用程序中,我們使用 keycloak 並配置了多個外部 IDP。 一切都在基於瀏覽器的平台上成功運行。 keycloak 提供的登錄頁面除了使用 IDP 登錄外,還顯示直接授權選項,如果用戶單擊使用 IDP 登錄,他將被重定向到 IDP 的登錄頁面,然后我們的 keycloak 會收到令牌。

我想在該流程中更改的是,我不想顯示 keycloak 的用戶登錄頁面,而是想顯示我的應用程序(我的 FE)中處理我的 BE api 的登錄頁面。 我的 BE 會處理 KC。 然后如果用戶選擇使用 IDP 登錄,我想從 KC 獲取重定向 url 以將其傳遞給我的 FE。 然后在獲得令牌后我想立即將用戶重定向到我的 FE。

換句話說,我不希望用戶直接訪問 KC 這應該貫穿我的整個 BE

您的客戶端應用程序永遠不應訪問用戶憑據。

我會考慮另一種方式(我對你的設置做出假設,因為你沒有提供太多細節):

  • 為 Keycloak 提供自定義主題以匹配您的客戶端應用程序的外觀
  • 可能將您的 Spring 后端配置從client更改為resource-server 在 OAuth2 的措辭中,REST API 是資源服務器,而不是客戶端。
  • 對於未經授權的請求,可能從 302(重定向到 Spring 的oauth2Login )切換到 401(這是未經授權請求的標准 HTTP 狀態)
  • 可能,在您的 SPA 客戶端中,使用經過認證的 OIDC 客戶端庫之一來處理帶有 PKCE 的授權代碼流、令牌過期前的靜默刷新、用於插入訪問令牌的 HTTP 攔截器、具有自動登錄功能的路由保護,...我最喜歡的 Angular 是angular-auth-oidc-client

如果我關於你的 REST API 是用spring-boot-starter-oauth2-client配置的是正確的,如果你還不知道如何用spring-boot-starter-oauth2-resource-server配置它,你可以參考Spring 官方文檔或我寫的本教程

暫無
暫無

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

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