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