Java Spring 应用程序 - 与 Azure AD 集成以实现 SSO

Posted

技术标签:

【中文标题】Java Spring 应用程序 - 与 Azure AD 集成以实现 SSO【英文标题】:Java Spring Application - Integration with Azure AD for SSO 【发布时间】:2021-09-05 16:29:53 【问题描述】:

我有一个 Java Spring MVC 应用程序(注意它不是 spring boot)。

我们需要为应用程序的用户实施 SSO。我做了一些研究,在我们的案例中,身份提供者 (IDP) 是 Azure AD。在这种情况下,服务提供商将是我的应用程序。我正在考虑将 SAML 协议用于 SSO。 另请注意 - 该应用程序基于 http(不是 HTTPS)

到目前为止我做了什么 -

我在 Azure 上创建了一个企业应用程序并配置了 entityId 和 replyURL。我还为此应用添加了一个用户。

我被困在哪里 - 尽管我确实阅读了相关的 Spring 文档来实现这一点,但由于我是这里的新手,对于如何在我的应用程序中推进这一点,我仍然没有明确的路径。我找到了一些解决方案,它们似乎是 spring boot 的示例。有人可以帮助我指导如何在 Java Spring 中完成这项工作吗?我可以使用哪个 maven 依赖项以及任何示例示例来开始使用 SAML?一步一步的解释将不胜感激,谢谢。

此外,除 SAML 之外的任何其他选项也可以。

【问题讨论】:

您可以尝试使用 Graph API 和 OAuth 到 Azure,但 AFAIK Azure 不会响应非 https 端点。任何消费个人信息的端点都必须使用 https docs.microsoft.com/en-us/graph/auth-v2-user 【参考方案1】:

Spring Security SAML 扩展 (https://docs.spring.io/spring-security-saml/docs/1.0.0.RELEASE/reference/html/index.html) 有一个示例 Web 应用程序。您可以阅读参考文档并将其应用于 Spring Security SAML。应该不会相差太大。

【讨论】:

以上是关于Java Spring 应用程序 - 与 Azure AD 集成以实现 SSO的主要内容,如果未能解决你的问题,请参考以下文章

java/spring 和 c++/qt 应用程序与 websockets 之间的通信

将xml和java配置与spring混合

Spring Boot 应用程序 - 启动时间与“mvn spring-boot:run”和“java -jar”的差异

Java开发学习视频!基于java的个人博客系统的设计与实现

Java开发学习视频!基于java的个人博客系统的设计与实现

Spring课程 Spring入门篇 4-6 Spring bean装配之基于java的容器注解说明--@ImportResource和@Value java与properties文件交互