我想在基于Spring的应用程序中实现单点登录(SSO)身份验证层,以支持来自不同安全域的身份验证和授权。我选择了Shibboleth作为IdP,但我尚未确定我将用于SP的内容。
选择是:
Spring Security SAML扩展:组件使新应用程序和现有应用程序都可以充当基于SAML 2.0协议的联盟中的服务提供者,并启用Web Single Sign-On。Spring Security Extension允许在单个应用程序中无缝组合SAML 2.0和其他身份验证和联合机制。可以使用在身份提供者模式下支持SAML 2.0的所有产品(例如ADFS 2.0,Shibboleth,OpenAM / OpenSSO,RM5 IdM或Ping Federate)来连接Spring Security SAML Extension。
Shibboleth(也称为SP):Shibboleth是一项基于Web的技术,可实现SAML的HTTP / POST,工件和属性推送配置文件,包括身份提供商(IdP)和服务提供商(SP)组件。
因此,我有一些问题:
两者之间的主要区别是部署方案:
Shibboleth SP插件直接部署到Apache / IIS Web服务器。
Spring SAML嵌入在您的应用程序中。
两者都有优点和缺点。
spring SAML
Shibboleth插件
可以将外部SP与Spring Security一起使用吗?如何配置我的应用程序和/或我的应用程序服务器(JBoss 8.0-WildFly)?
是的,有可能,但是需要付出努力。您可以例如配置WildFly以设置加密格式的共享域cookie,并在Spring Security配置中验证cookie。
我在哪里定义角色(针对每种情况)?
使用Spring SAML,您可以在处理SAML响应时定义角色,例如通过解析SAML属性。这是通过实现SAMLUserDetailsService接口并将其插入来完成的samlAuthenticationProvider。
使用Shibboleth,您可以使用头将从IDP接收到的属性转发到您的应用程序,并在应用程序中解析它们。
WildFly(可能)使您可以直接在SP中定义安全性上下文和角色,而无需在应用程序中进行配置。这种配置可能无法跨应用程序服务器移植。
我的要求是使用基于SAML的SSO。从SAML断言中检索用户组并保护其余apiendpoint。我正在使用Spring SecuritySAML扩展和Spring MVC。我采取的步骤是。 < li >使用Spring SAML扩展为SP配置应用程序。[完成] < li >检索断言并分配角色[完成] < li >创建restendpoint。[完成] < li >基于角色保护restendpoin
我能够使用Spring Security SAML扩展使我的应用程序充当IDP socircle的SP。我的客户有以下要求: 1.对断言进行签名:从IDP发送的断言进行了签名,并且运行良好。 在考虑到弗拉基米尔的评论之后。我将绑定更改为HTTP-Post,所以现在我发送带有所示签名的SAML请求。通过执行以下操作,我能够发送使用我的私钥(而不是示例项目提供的私钥)签名的请求: 使用keygen工具
我们有两个独立的产品,都包括Web应用程序和服务器。 我们希望为这两个产品都实现单点登录,这样当用户登录到一个产品时,他可以自动访问属于他的另一个产品中的资源。 我已经探索了一点,发现SAML是我们可以采取的一个很好的方法,但是我们不确定我们想如何进行。 实施我们自己的服务提供商是个好主意吗?我看过Shib SP,但看起来如果我想将其集成到我的产品中,也不会那么容易。 所以我只是向以前遇到过类似问
我一直在用SAML扩展连接ADFS服务器。我已经破解了示例应用程序以使用我的ADFS服务器,一切都很顺利,但是我想知道是否有一种方法可以不使用IDP的登录页面连接到IDP。我的意思是,如果有一种方法可以在后台为最终用户完成这个过程。我在考虑对ADFS做一个查询或类似的事情,从SP登录页面获取用户并进行身份验证,避免用户在IDP登录页面进行身份验证的需要。
我正在尝试通过SAML请求将SSO集成到我们的ASP. NET应用程序中。我正在使用KentorAuthService库来实现这一点。使用kentor库是否是从其他身份提供者(例如(一次登录、快速身份等)进行身份验证的解决方案,或者我应该专门基于身份提供者实施。
提前为英国人道歉。 对于客户端,我们必须构建一个单点登录选项。客户特别要求SAML。客户机跟踪所有信息。到目前为止,我了解SAML,他们将是身份提供商,我们将是服务提供商。 然而,为了让我们的系统正常工作,我们需要有一个用户。因此,我们的系统需要保存与身份提供者相同的信息。我们的想法是在我们的系统中进行卷影复制,并在SAML登录时更新信息。但这似乎与SAMLs原则背道而驰。这样做对吗?还是我们应该