繁体   English   中英

SAML重定向

[英]SAML redirection

我们在SAML中遇到了情况。 我们是服务提供商,它是SP发起的。 我们有2个网站-登陆SP网站和实际SP网站。 登陆SP网站只有一个登陆页面,该页面将链接到实际的SP网站。 要求使登陆SP网站和实际SP网站都可以与一个IDP网站(最自然的方式,一个可以预期)一起工作。 因此,应满足以下要求。

  1. 如果用户启动了登陆SP网站的请求,并说用户已经通过身份验证,则当用户单击登陆SP网站中到实际SP站点的链接时,应该验证用户令牌。 我们可以为此进行自定义编码,但希望限制为SAML协议设置。 请让我知道如何在SAML设置中完成此操作。 可以在IDP和Actual SP网站上进行哪些配置以实现此目的。

  2. 如果用户通过登陆SP网站链接进入实际SP网站,则在IDP中进行身份验证后,他会将实际SP网站的URL标记为书签。 退出(会话退出)然后再次在IDP上登录后,IDP将如何将用户直接定向到实际的SP网站(当只有登陆的SP网站在IDP中可以称为SP时)。 有什么方法可以在IDP上告知第二个IDP URL(实际SP网站)。 我看到元数据中的AsssertionConsumerURL和Audience紧密匹配,可以解决此问题,但是我发现两者都有问题。 AsssertionConsumerURL仅支持一个url,并且Audience需要条件,在这种情况下您将如何编写条件。

我运行的联合系统包含20,000多个SAML IDP和许多相关网站,并与各种身份管理标准委员会合作。

我的回答是假设您正在联合环境中工作,在该环境中,您将向运行IDP的另一方提供系统的SAML元数据。

为了与拥有多个终结点的IDP进行通信,您需要将两个AssertionConsumerService URL都包含在实体的SAML元数据中。 请参阅SP中的SAML 2.0-Multiple AssertionConsumerService和第748行http://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf

受众群体需要检查的东西稍有不同。 为了实现免受各种攻击的SAML安全,IDP将使用听众与要认证用户的各方进行通信。 有关受众价值的使用,请参见http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf§4.1.4.2和§4.1.4.3。 https://fusionsecurity.blogspot.com/2011/08/5-minutes-or-less-on-saml-audiences.html似乎很合理。

已启动SP,表示用户从SP开始流程。 我将举一些例子,因为我不确定您对第二个登陆页面的要求是否完全必要。

https://example.com/上假设一个应用程序。 https://example.com/上的登录页面不需要任何身份验证,并具有“登录”链接。 某些页面位于https://example.com/catalog/[ID]上 ,未经身份验证的用户和经过身份验证的用户都可以查看(未经身份验证时也可以使用“登录”按钮)查看。 最后, https://example.com/profile/ [ID]上的页面只能由经过身份验证的用户访问。

为了进行身份验证,请定义一个acs https://example.com/acs.html

在这里我要补充一点,我们希望客户拥有多个IDP-教育机构,医院和联邦机构通常会为来自不同来源的用户提供支持。 我们有“ WAYF”或“您来自哪里?” 如果客户有多个IDP,则该页面允许用户选择IDP。

“理想”流程从用户在登录页面开始,移动到目录页面,最终登录,然后访问配置文件。 但是,他们可以为个人资料添加书签。

当用户将书签跟随到需要身份验证的页面时,该代码向IDP发起SAML请求(如果需要,通过WAYF)并保存状态,以便当用户通过成功身份验证返回ACS时,他们可以返回到个人资料页面。

§4.1.5中对此进行了讨论。 可用性https://kantarainitiative.github.io/SAMLprofiles/saml2int.html#_metadata_and_trust_management

我认为这解决了您的问题,尽管我的示例考虑了同一网站的目标网页部分。 对于您单独的网站要求,我还不清楚。

暂无
暂无

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

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