簡體   English   中英

Java Spring 應用程序 - 與 Azure AD 集成以實現 SSO

[英]Java Spring Application - Integration with Azure AD for SSO

我有一個 Java Spring MVC 應用程序(注意它不是 spring 引導)。

我們需要為應用程序的用戶實施 SSO。 我做了一些研究,我們案例中的身份提供者 (IDP) 是 Azure AD。 在這種情況下,服務提供商將是我的應用程序。 我正在考慮將 SAML 協議用於 SSO。 另請注意 - 該應用程序基於 http(不是 HTTPS)

到目前為止我所做的 -

我在 Azure 上創建了一個企業應用程序並配置了 entityId 和 replyURL。 我還為此應用程序添加了一個用戶。

我被困在哪里- 雖然我確實閱讀了相關的 Spring 文檔來實現這一點,但由於我是這里的新手,所以我仍然沒有明確的路徑來說明如何在我的應用程序中推進它。 我找到了一些解決方案,它們似乎是 spring 引導的示例。 有人可以幫助我指導如何在 Java Spring 中完成此操作嗎? 我可以使用哪個 maven 依賴項以及任何示例示例來開始使用 SAML? 一步一步的解釋將不勝感激,謝謝。

此外,SAML 以外的任何其他選項也可以。

Spring 安全 SAML 擴展( https://docs.spring.io/spring-security-saml/docs/1.0.0.RELEASE/reference/html/index.html )有一個示例 web 應用程序。 您可以閱讀參考文檔並將其應用於 Spring Security SAML。 應該不會差太多。

我很高興在使用現有的 Spring MVC 架構實現 Azure AD B2C OIDC/OAuth協議的情況下注冊流程。
下面的 Spring 文檔揭示了我們現有項目的 spring-security 層是如何在過濾器鏈的上下文中提供服務的。

先決條件

為了完成這個Azure B2C 集成,我們已經瀏覽了很多回購協議,但大多數都依賴於 Java 配置,但我們對代碼/架構更改有限的 Spring 名稱空間感興趣。 最后我們得出的結論是,如何擴展 spring 默認的 auth-filter/manager 以在成功的用戶身份驗證后基於 Azure 提供的(id/訪問)令牌從安全上下文中獲取有效的 session object。

定制Spring-Security

有關如何擴展 auth-filter/manager的詳細文檔,請參見此處,版權所有 © terasoluna.org

我們定制了 spring 的安全性,使得 auth-filter 將針對 Azure 中的給定令牌攜帶 token_validation,並且身份驗證管理器將提取用戶詳細信息,例如角色/權限 w.r.t 到我們數據庫用戶中映射的對象 ID實體。
一旦 Spring 安全定制完成,我們就可以按照常規方法集成授權服務器 [在我們的例子中是 Azure] 和資源服務器 [現有的 Spring 應用程序]。

暫無
暫無

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

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