【发布时间】:2010-02-05 13:17:44
【问题描述】:
我想编写一个 Web 应用程序,它使用由身份提供者颁发的 SAML 2.0 令牌进行身份验证。根据question,我了解在 PHP 世界中使用simpleSAMLphp 有一个可行的解决方案。
在 Java 世界中是否有等效的方法?是否有针对常见servlet 容器或应用服务器的开箱即用解决方案和/或教程?
【问题讨论】:
标签: java single-sign-on saml
我想编写一个 Web 应用程序,它使用由身份提供者颁发的 SAML 2.0 令牌进行身份验证。根据question,我了解在 PHP 世界中使用simpleSAMLphp 有一个可行的解决方案。
在 Java 世界中是否有等效的方法?是否有针对常见servlet 容器或应用服务器的开箱即用解决方案和/或教程?
【问题讨论】:
标签: java single-sign-on saml
你可以试试OpenSAML project;它提供了一个用于创建和验证 SAML 令牌的 Java 库。
【讨论】:
您可以查看 2 个产品:
两者都有令人印象深刻的功能列表,并提供广泛的 SSO 代理列表。
代理方法的主要好处是您不必在应用程序中关心身份验证过程,因为它由代理和 SSO 基础架构处理。
如果您要开发自己的 SAML2 服务提供者,使用 OpenSAML 是您的最佳选择。缺点是这个库没有很好的文档记录。不过,您应该很容易在网上找到一些有关 OpenSAML 的教程。
例如,您可以将其实现为 servlet 过滤器,这样您的应用程序代码就不会绑定到 SAML。
【讨论】:
最近为一个应用程序实施了 SAML 身份验证,我在 OASIS SAML2 技术概述文档中找到了最有用的信息。它非常易读,并且包含传递的 XML 消息的真实示例。
第 5.1 节描述了让您的应用程序(服务提供商或 SP)向远程身份提供商 (Idp) 请求身份验证的交互。
【讨论】:
你需要的一切都在OpenSSO site,OpenAM 是它的继任者。
【讨论】:
提供更多最新答案,因为有一段时间没有访问过:
如果您已经在做一个 Spring 项目,我已经在 Spring Security SAML 方面取得了成功。您不必使用 Spring Security 来保护您的应用程序即可使用 SAML 扩展,尽管它更容易一些。
【讨论】: