繁体   English   中英

在opensaml中使用saml2.0的SSO

[英]SSO using saml2.0 in opensaml

我们有4个申请。 我们希望在这些应用程序中实施SSO。 我对此有几个疑问。 我们被建议使用opensaml。

查询1:

用户输入的用户名和密码由客户端(Ex.Front-end)发送到中间件,然后中间件将此信息发送到SSO服务器,那么在这种情况下用户是否为主体? 中间件是服务提供商吗? SSO服务器是身份提供者吗?

查询2:

现在,当用户登录其中一个应用程序时,我们应该连接到身份提供程序以启动SSO,我们应该将哪些参数(强制性)发送到SSO服务器?

问题3:

在从SSO服务器获得响应之后,中间件是否应保留令牌以供将来参考?

查询4:

现在,如果另一个用户点击另一个应用程序,那么应该确定有sso正在处理。 怎么识别? 中间件应该打到SSO服务器吗?

请妥善解决上述问题。

1)是的,您描述的“中间件”是服务提供商,“SSO服务器”是身份提供商。

2)当用户在服务提供商上尝试受保护资源时,它会将浏览器重定向到身份提供者。 如果浏览器与Identity Provider没有活动会话,则会提示用户输入登录详细信息。

之后,浏览器将被重定向回服务提供商以及验证用户的SAML响应。 验证SAML响应后,服务提供商将重定向到受保护资源。

一旦用户通过身份验证,服务提供商就可以保留自己的会话,以便为每个请求保存重定向到身份提供商。

3)服务提供商(中间件)通常不会保留来自身份提供商的SAML响应,而是可以设置自己的会话。 例如在.Net中,这可以通过表单身份验证来关闭。

4)当用户尝试访问另一个服务提供商时,浏览器将被重定向到身份提供商。 由于用户已经有活动会话,身份提供商将使用SAML repsonse重定向回服务提供商。 然后,服务提供者将重定向到受保护资源,并可选择创建自己的会话。

这对用户无缝地发生,并且它们有效地直接记录到第二个服务提供商。

您还使用哪个平台进行开发? 如果您使用的是.NET或Java,那么我可以推荐开源库OIOSAML 它包括服务和身份提供商的工作示例,以便您了解事情的运作方式。

您在考虑使用什么IDP?

在SAML世界中,所有URL,证书等都通过元数据进行交换。

因此,在IDP中,您将导入sp.xml,在SP中,您将导入idp.xml。

对于Java,您需要在SP端使用某种SAML堆栈。

请参阅: SAML堆栈Java等效于WIF

暂无
暂无

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

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