SAML 2.0 擴充套件遷移

本文件包含將 SAML 2.0 服務提供商從 Spring Security SAML Extensions 1.x 遷移到 Spring Security 的指南。由於 Spring Security 不提供身份提供商支援,因此遷移 Spring Security SAML Extensions 身份提供商不在本文件的範圍之內。

由於這兩種方法差異巨大,本文件將更側重於模式,而非精確的搜尋和替換步驟。

登入與登出

方法上的變化

Spring Security 在一些顯著方面與 Spring Security SAML Extensions 採取了略有不同的方法。

簡化啟用

Spring Security SAML Extensions 對服務提供商的支援是透過一系列過濾器提供的,這些過濾器透過將每個過濾器按正確順序手動新增到各種 Spring Security 過濾器鏈中來啟用。

Spring Security 的 SAML 2.0 服務提供商支援透過 Spring Security DSL 方法啟用:saml2Loginsaml2Logoutsaml2Metadata。它會選擇要新增的正確過濾器,並將其放置在過濾器鏈中的適當位置。

更強的封裝

與 Spring Security SAML Extensions 一樣,Spring Security 的 SAML 支援基於 OpenSAML。Extensions 專案透過公共介面暴露 OpenSAML,模糊了兩個專案之間的界限,有效地要求 OpenSAML,並使升級到更高版本的 OpenSAML 變得更加複雜。

Spring Security 提供了更強的封裝。沒有公共介面暴露 OpenSAML 元件,並且任何在其公共 API 中暴露 OpenSAML 的類都以 OpenSaml 字首命名,以增加清晰度。

開箱即用的多租戶

Spring Security SAML Extensions 為宣告多個身份提供商並使用 idp 請求引數在登入時訪問它提供了一些輕量級支援。這在執行時更改方面受到限制,並且也不允許依賴方和斷言方之間存在多對多關係。

Spring Security 以 RelyingPartyRegistration 的形式將其 SAML 2.0 多租戶功能內建到其預設 URL 和基本元件中。此元件充當依賴方元資料和斷言方元資料之間的連結,所有配對都可以在 RelyingPartyRegistrationRepository 中查詢。每個 URL 代表一個要檢索的唯一註冊配對。

無論是 AuthnRequests、Responses、LogoutRequests、LogoutResponses 還是 EntityDescriptors,每個過濾器都基於 RelyingPartyRegistrationRepository,因此本質上是多租戶的。

示例矩陣

Spring Security 和 Spring Security SAML Extensions 都有關於如何配置服務提供商的示例

用例 Spring Security Spring Security SAML Extension

登入和登出

示例

示例

使用 SAML Extension URL 登入

示例

-

元資料支援

示例

-

您還可以在 Spring Security SAML Extension 的 GitHub 專案中檢視一個展示示例。

Spring Security 不支援 SAML 2.0 響應的 HTTP-Redirect 繫結。根據 SAML 規範,由於 URL 長度和簽名限制,HTTP-Redirect 繫結不允許用於 SAML 響應。嘗試使用此繫結可能會導致意外錯誤。配置身份提供商時請改用 HTTP-POST 繫結。

未移植的功能

有一些功能尚未移植,目前也沒有計劃移植

  • SAML 2.0 響應的 HTTP-Redirect 繫結

  • Artifact 繫結支援

© . This site is unofficial and not affiliated with VMware.