【问题标题】:Implementing java SSO via ADFS通过 ADFS 实现 java SSO
【发布时间】:2018-05-08 09:05:33
【问题描述】:
我正在通过 ADFS 在 Java 应用程序中实现单点登录。
我只有 ADFS URL,它的 metadata.xml.ADFS 使用的是 SAML。访问我没有的 ADFS 日志。我需要实现 SSO,所以我只能从 https 发送请求?如果可能通过 Azure,我如何在 tomcat 上实现 https?也许我可以在 Ubuntu 上设置这个环境?我使用了很多示例,但没有一个可以正常工作,通常,我从 ADFS 服务器得到响应,说“发生错误,请联系您的管理员”。有没有教程有效?
【问题讨论】:
标签:
java
azure
azure-data-factory
【解决方案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 容易得多,没有相关缺点。