具有 SSO (SAML) 和 ADFS 的 Java 应用程序

Posted

技术标签:

【中文标题】具有 SSO (SAML) 和 ADFS 的 Java 应用程序【英文标题】:Java application with SSO (SAML) and ADFS 【发布时间】:2015-05-20 21:57:46 【问题描述】:

我正在创建一个 java 应用程序来使用 ADFS 实现 SSO (SAML)。我不确定是否可以单独使用 ADFS 完成 SAML。在安装 ADFS 时,我注意到它需要配置依赖方和声明提供商信任(基本上是 SP 和 IP,对吗?)。我很困惑是否在 java 应用程序中拥有 SP 和 IP,或者只是将其留给 ADFS 来处理。

任何帮助将不胜感激。谢谢!

【问题讨论】:

【参考方案1】:

您的 Java 应用程序需要一个 SAML 堆栈并成为 SP。

如果您没有想法,请参考:SAML : SAML connectivity / toolkit。

ADFS(处理 SAML 2.0)然后可以充当 IDP。

您还必须在 ADFS 中配置与 SAML 断言相对应的声明。

【讨论】:

谢谢@nzpcmad!我现在正在使用 Visual Studio 上的声明感知应用程序来实施 SSO。然后我打算从我的 java 应用程序中调用 .net 应用程序。我希望它会起作用。【参考方案2】:

您的 Java 应用程序将成为从身份提供者 (IdP) 服务器接收身份的服务提供者 (SP)。在您概述的用例中,ADFS 将是 IdP 服务器。在您的应用程序中,您需要集成一个库(例如 SAML 堆栈)来处理 SAML 断言。 SAML 需要在接口的两侧进行配置。有一些开源选项,例如OpenSAML。根据您的组织,您可能还需要查看供应商提供的解决方案以获得长期支持。

【讨论】:

谢谢埃里克!我现在正在使用 Visual Studio 上的声明感知应用程序来实施 SSO。然后我打算从我的 java 应用程序中调用 .net 应用程序。我希望它会起作用。

以上是关于具有 SSO (SAML) 和 ADFS 的 Java 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

SAML 2 和 ADFS 3.0 IDP - SSO 无效状态代码首次登录 - 但之后每次都成功

SAML/ADFS node.js 实施指南?

实现ADFS与阿里云SSO(单点登陆管理)——配置用户SSO

使用 Azure Active Directory 或 ADFS 或 AD 的 SSO

ADFS 2.0 中的 SAML 2 签名错误

带有 ADFS 的 Spring saml 扩展