繁体   English   中英

SAML2 SSO断言使用者

[英]SAML2 SSO Assertion Consumer

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

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

但是,当前的要求是不使用任何后端框架来提供IDP,他们表示这是定制构建的。 他们给了我IDP URL和一个证书文件,并要求我们提供“ AssertionConsumerServiceURL”和“ AudienceURI”。

我为SSO启用的应用程序很大程度上基于Java。 到目前为止,我的调查使我开始使用Forgerock的OpenAM解决方案以及Shibboleth的OpenSAML。 但是,我在第一步中苦苦挣扎,从本质上讲,我在哪里开始使用OpenAM / Shibboleth / AnotherFramework构建连接到第三方IDP的自定义SP应用程序。

任何指针将非常有用。

谢谢李

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

OpenSAML是用于处理SAML消息的非常底层的工具包。 如果不需要,我不建议这样做。

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

AudienceURI的定义非常灰色。 基本上,您向他们发送一个标识符,他们在其消息中包含该标识符,并确认该标识符与您给他们的标识符相同。 我自己不明白这和Destination之间的区别...

我为他们要求您而感到惊讶。 进行第一次信息交换的标准方法是使用SAML元数据文档。

如您所知,OpenAM还提供了FedLet,它是轻量级的SAML2.0 SP实现。 如果您想自己做所有事情,则必须自己构建SAML2.0 SP。

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

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

您可以设置Spring Security SAML扩展。 该扩展创建了一个AssertionConsumerServiceURL,如果他们想像访问您的元数据一样访问您的元数据,则只需访问www.yourwebsite.com/saml/metadata,他们的SP元数据将被下载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM