2

我們正在開發微服務體系結構中的應用程序,該應用程序使用Spring Cloud OAuth2在Google和Facebook等多個OAuth2提供程序上實現信號登錄。我們還在開發我們自己的授權服務器,並將在下一個版本中集成。Spring Cloud OAuth2:具有多個授權服務器的資源服務器

現在,在我們的微服務,這是資源服務器,我想知道如何處理多個授權服務器(例如Facebook或谷歌)多個token-info-uriuser-info-uri

+1

就面臨着一個相關問題的訪問令牌。 security.oauth2.resource.jwt.keyValue僅允許來自一個授權服務器的密鑰。 – sdoxsee

回答

3

這種情況通常是由一箇中間人解決; 您的資源服務器信任的一個實體,可用於規範任何可能的差異,這些差異表明用戶可能使用不同的提供商進行身份驗證。這有時被稱爲聯邦提供者。

Auth0就是這種實現的一個很好的例子。 披露:我是Auth0工程師。

Auth0位於您的應用程序和身份驗證提供程序之間,用於驗證您的用戶。 通過這種抽象級別,Auth0可以讓您的應用與每個提供商的實施的任何變化和特質隔離。

(重點是我的)

這並不是說你的資源服務器不能在技術上信任多個授權服務器,它只是移動該邏輯出了單個資源服務器到中央位置將使其更易於管理和解耦。

另外請記住,認證和授權是不同的東西,雖然我們習慣於把它們看在一起。 如果你要實現自己的授權服務器,你應該做的中心點,可以

  • 處理多種類型的認證供應商
  • 提供用戶資料給下游資源歸一化視圖服務器
  • 提供可以由您的客戶端應用程序可以用來做授權的請求到您的微服務
相關問題