1

我有一个客户想要使用基于 SAML2 断言的方法来实现 SSO。客户将成为身份提供者 (IDP),而我的应用程序将有效地成为服务提供者 (SP)。

在过去,我实施了 SSO 解决方案,其中 IDP 是 Oracle Access Manager,因此我们获得了 idp.xml 文件,它允许我们使用提供的 Fedlet 配置我们的 SP 环境。这方便地创建了一个相关的 WAR 文件,在部署后,我可以将 sp.xml 文件分发给将其导入 IDP 的客户。这一切都很好,我理解这些概念,即我们收到初始请求,fedlet 处理这个并将用户带到他们进行身份验证的 IDP,然后通过 Fedlet 允许我们的 SAML 响应将它们传递回我们的 SP解析和提取一些识别用户的数据。然后,我执行将它们登录到我们的应用程序所需的操作。

然而,目前的要求是不使用任何后端框架来提供 IDP,他们已经声明它是定制的。他们给了我 IDP URL 和证书文件,并要求我们提供“AssertionConsumerServiceURL”和“AudienceURI”。

我为其启用 SSO 的应用程序主要基于 Java。到目前为止,我的调查使我找到了 Forgerock 的 OpenAM 解决方案以及 Shibboleth 的 OpenSAML。然而,我在第一步中挣扎,基本上我在哪里开始构建一个使用 OpenAM/Shibboleth/AnotherFramework 连接到第三方 IDP 的自定义 SP 应用程序。

任何指针都会非常有用。

谢谢,李

4

4 回答 4

1

取决于你的要求是什么。OpenAM feldlet 或 Shibboleth 我可能是最好的方法,因为你不必自己做这么多的编码。

OpenSAML 是一个用于处理 SAML 消息的非常底层的工具包。如果不是真的需要,我不会推荐它。

至于他们要求的东西,AssertionConsumerServiceURL 是您接收 SSO SAML 消息的服务端点。

AudienceURI 的定义是相当灰色的。基本上,您向他们发送一个标识符,他们将其包含在他们的消息中,并且您验证该标识符与您给他们的标识符相同。我自己不明白这和目的地之间的区别......

我有点惊讶他们问你这个。执行此第一次信息交换的标准方法是通过 SAML 元数据文档。

于 2013-02-19T12:39:31.853 回答
0

您可能知道 OpenAM 还提供了 FedLet,它是一个轻量级的 SAML2.0 SP 实现。如果你想自己做这一切,你必须自己构建一个 SAML2.0 SP。

如果你想弄乱 Spring 你也可以使用 Spring Security SAML2 扩展 ..' http://static.springsource.org/spring-security/site/extensions/saml/index.html '

于 2013-02-19T08:32:08.643 回答
0

为什么要推出那些繁重的 SAML 解决方案?您是否从 Ping Identity 了解过 PingOne APS(应用程序提供商服务)或 PingFederate?您可以在不到一天的时间内实施 APS,并且您的第一个客户配置是免费的。包括仪表板报告、用于配置的 IDP 自助服务功能以及用于您的应用程序的非常简单的 REST API 集成。[注:我为 Ping 工作。]

于 2013-02-19T12:30:58.317 回答
0

您可以设置 Spring Security SAML 扩展。该扩展程序会创建一个 AssertionConsumerServiceURL,如果他们想在您访问他们的元数据时访问您的元数据,他们只需要访问 www.yourwebsite.com/saml/metadata,他们就会下载您的 SP 元数据。

于 2017-05-19T19:21:44.250 回答