通过 ADFS 实现 java SSO

Posted

技术标签:

【中文标题】通过 ADFS 实现 java SSO【英文标题】:Implementing java SSO via ADFS 【发布时间】:2018-05-08 09:05:33 【问题描述】:

我正在通过 ADFS 在 Java 应用程序中实现单点登录。 我只有 ADFS URL,它的 metadata.xml.ADFS 使用的是 SAML。访问我没有的 ADFS 日志。我需要实现 SSO,所以我只能从 https 发送请求?如果可能通过 Azure,我如何在 tomcat 上实现 https?也许我可以在 Ubuntu 上设置这个环境?我使用了很多示例,但没有一个可以正常工作,通常,我从 ADFS 服务器得到响应,说“发生错误,请联系您的管理员”。有没有教程有效?

【问题讨论】:

【参考方案1】:

在 SO 上找到了这篇关于如何启用 ADFS SSO 启用 Java 应用的有用帖子。希望这可以帮助。 您的应用程序需要直接(从您的代码)或间接(例如,通过反向代理、应用程序服务器等上的 SAML SP 支持)充当 SAML SP。 对于直接选项(需要对您的应用程序进行更多修改),您可以: • 自己编写 SAML SP 代码(很可能使用 OpenSAML,您可以在现有产品的来源中找到示例) • 使用现成的产品集成到您的应用程序中,例如Spring SAML 或OpenAM Fedlet 对于间接选项(需要对您的应用程序进行较少修改),您可以: • 在您的 Apache 反向代理上使用Shibboleth SAML SP plugins(如果您使用的话) • 将 SAML SP 部署为容器上的另一个应用程序(例如 Spring SAML 或 OpenAM)并使其与您的应用程序通信 - 因此 SAML SP 使用 ADFS 执行身份验证并将其传达给您的应用程序,例如通过共享 cookie 或自定义令牌 您可以找到更多比较细节和注意事项in this thread。 ADFS 3 应该支持 OAuth 授权服务器,它可能是一种更简单的集成方式,请参阅 here 和 here。使用 OAuth 实现身份验证通常比 SAML 容易得多,没有相关缺点。

【讨论】:

以上是关于通过 ADFS 实现 java SSO的主要内容,如果未能解决你的问题,请参考以下文章

Spring security ADFS SSO 集成 - 响应没有任何可以通过主题验证的有效断言

Spring SAML + ADFS:响应没有任何可以通过主题验证的有效断言

Dynamics 365 通过ADFS连接第三方SSO登录后跳转回来404的问题

实现ADFS与阿里云SSO(单点登陆管理)——ADFS搭建ADFS场的建立

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

ADFS及ADFS Proxy证书过期处理