簡體   English   中英

Spring 引導 oauth2 響應,重定向 url 作為基礎服務而不是代理(網關)

[英]Spring boot oauth2 response with redirect url as underlying service instead of proxy (Gateway)

我正在使用 Springboot 實現 oauth2 服務器

我有四個微服務

  1. 銷售額(銷售額)
  2. 庫存(存貨)
  3. IAM 服務(授權服務器,帶 Oauth2)(http://iam:8089)
  4. 網關(網關在http://www.gateway.com

所有這些服務都在Spring雲網關后面,部署在K8S下,網關對外暴露接口。

現在,如果我嘗試使用 oauth2 通過網關對用戶進行身份驗證,如下所示。

步驟1:

Http 請求http://www.gateway.com/oauth/authorize

所以在響應 header 中我越來越喜歡

位置:http://iam:8089/v1/oauth/login(但期望是http://www.gateway.com/oauth/login

並且由於該瀏覽器將我重定向到 http://iam:8089/oauth/login

理想情況下,我希望它也通過網關服務進行路由,例如

http://www.gateway.com/oauth/login

有人可以幫我解決這個問題嗎?

謝謝阿爾佩什

聽起來這是一個很好的設置,符合我們在IAM 入門文章中的 Curity 推薦的設置,授權服務器 (AS) 在反向代理或網關后面。

在您的情況下,AS 偵聽 http://Iam:8089,但這是一個內部 URL。AS 也有一個供 inte.net 客戶端使用的“基本 URL”,這是網關的 URL,它是http://www.gateway.com在你的例子中:

  • 它將在 OpenID Connect 發現請求中返回給客戶端
  • 在身份驗證期間,它將在瀏覽器重定向中返回給瀏覽器

應該在 Spring OAuth2 服務器中的某處設置基礎 URL,類似於 Curity Identity Server 中的設置(見下圖)。 該過程應該是設置此值,然后驗證它是否在元數據請求中返回。 然后您應該正確配置。

在此處輸入圖像描述

在 Spring 中,我希望您需要的設置在某處的流暢配置中-也許是Configurer 類之一。 不過,我發現很難在 Spring 中找到我要找的東西。

暫無
暫無

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

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