C# 跨多个SP的SAML身份验证&x27;s

C# 跨多个SP的SAML身份验证&x27;s,c#,asp.net,azure,single-sign-on,saml-2.0,C#,Asp.net,Azure,Single Sign On,Saml 2.0,我有一个门户,我已经用一个SP(Azure AD)实现了SAML身份验证。在门户A中,我将门户B中的一些屏幕显示为Iframe 门户A和门户B都使用来自同一IDP(Azure AD)的基于SAML的身份验证 这里的情况是,用户登录到门户A,当尝试访问门户B屏幕显示为iFrame的页面时,他们必须再次启动SAML登录(但现在不会提示他们输入凭据) 因为他们已经使用SAML身份验证登录到门户A) 我最初的印象是,当针对IDP对门户A进行身份验证时,这将针对使用相同IDP进行身份验证的所有门户建立SS

我有一个门户,我已经用一个SP(Azure AD)实现了SAML身份验证。在门户A中,我将门户B中的一些屏幕显示为Iframe

门户A和门户B都使用来自同一IDP(Azure AD)的基于SAML的身份验证

这里的情况是,用户登录到门户A,当尝试访问门户B屏幕显示为iFrame的页面时,他们必须再次启动SAML登录(但现在不会提示他们输入凭据) 因为他们已经使用SAML身份验证登录到门户A)

我最初的印象是,当针对IDP对门户A进行身份验证时,这将针对使用相同IDP进行身份验证的所有门户建立SSO。但现在我明白了,这不是它的工作原理


当用户已成功使用一个SP对自己进行身份验证时,是否可以为使用相同IDP进行身份验证的所有SP实现SSO?无需提示用户登录使用samle IDP的所有其他SP?

SAML身份验证请求中有一个
isPassive
选项,允许SP检查用户是否在IDP上进行身份验证,无需与用户进行任何交互,无论状态如何(即已验证与未验证)。见第3.4.1节:

IsPassive[可选]
布尔值。如果为“true”,则标识提供程序 而且用户代理本身不能明显地控制用户 接口,并与演示者以 引人注目的时尚。如果未提供值,则默认值为 “假”

SP可以在不向用户显示的iframe中使用它来确定是否弹出“登录”按钮。如果用户经过身份验证,将返回SAML响应而不会打扰用户,并且可以创建应用程序会话。如果用户未通过身份验证,SAML响应将表明这一点,并且可以显示“登录”按钮

这取决于SP知道询问哪个IDP


没有一种标准化的方法可以一次性将用户登录到所有SP,但IDP可以在企业门户中实现此类功能,该门户使用IDP启动的SSO SAML响应向SP启动iFrame。

您的问题描述有点不清楚,但只要用户通过IDP验证即可(通常通过访问第一个SP触发),不需要凭据就可以通过后续SP进行身份验证。那么,问题出在哪里?很抱歉,不清楚。是的,后续SP不需要凭据。但是,为什么要将用户重定向到后续SP的登录页面?在后续SP上,他需要单击登录按钮,从那里他将再次被带到STS门户在中,然后只有他在另一个SP上成功通过身份验证。虽然没有提示他在那里重新输入凭据,但我认为,与其让用户单击后续SP上的登录按钮,还可以直接对用户进行身份验证,而无需让他单击后续SP上的登录按钮用户需要单击SP端的登录按钮。这是SP实现的详细信息,应该在那里处理。看起来您需要某种功能,IdP可以自动向所有SP验证用户。不知道Azure AD是否支持此功能。谢谢Robby。这确实是我的问题。