我应该支持哪些SAML绑定作为Web SSO服务提供商?验证用户的信息如何传回给我?

时间:2016-07-29 07:59:27

标签: saml saml-2.0

我有一个类似于How To Become a SAML Service Provider的问题,但它遗漏了一些我想澄清的部分。

SAML SSP配置文件规范描述了几种可能的绑定,并指出使用情况取决于SP和IdP设置。

  

SAML一致性和配置文件规范标识SAML   可以合法地与这两个消息一起使用的绑定。   具体地,可以从SP发送认证请求消息   使用HTTP重定向绑定,HTTP POST绑定到IdP,   或HTTP工件绑定。响应消息可以从IdP发送   使用HTTP POST Binding或HTTP Artifact到SP   捆绑。对于这对消息,SAML允许不对称   选择使用的绑定。也就是说,可以使用一个请求发送请求   绑定和响应可以使用不同的绑定返回。   决定使用哪种绑定通常是由   IdP和SP系统的配置设置。等因素   潜在的消息大小,是否允许身份信息   通过浏览器传输(如果不是工件绑定可能   在选择绑定时必须考虑必要的)等。

我的第一个问题:作为服务提供商,我可以自由选择任何一个SP - > IdP绑定,它可以与任何IdP一起使用,或者我应该在我的实现中配置这个并支持所有绑定? (Nota bene:我可能会集成一个现有的saml库来帮助我的生活,但我应该知道我应该在接口上允许和支持哪些配置选项。)

第二个问题是关于SamlResponse在成功验证后从IdP回来。据我了解,SAML只是告诉我用户已经使用IdP进行了认证。因此,我希望在Response中返回一些用户标识符,例如我可以从本地用户db或LDAP查询的uid,用户名或电子邮件地址,并运行特定于应用程序的授权逻辑。 我如何向IdP询问我需要的用户标识符以及返回的方式/位置?我无法在Wikipedia example

中看到与此相关的anthing

1 个答案:

答案 0 :(得分:1)

  1. 根据SAML-IdP和SP服务器支持的绑定,您可以选择绑定对的任意组合。通常,所有主要的SAML-IdP都支持SAML规范中指定的大部分绑定。此外,您还必须考虑安全性和性能。工件更安全,但需要两次往返才能完成SAML-Authn流程,因为它在发送和接收SAML消息时进行后端呼叫通信(与POST或重定向不同)。如果您的SAML-IdP和SP服务器支持绑定配置,那么您可以在运行时使用这些绑定。

  2. NameID格式标识IdP和SP之间的用户,由IdP在SAML断言中发送。它可以是emailAddress,未指定,瞬态,持久性和其他一些。有关详细信息,请查看SAML Spec中的章节(8.3)名称标识符格式标识符。您也可以请求IdP在SAML断言中发送用户属性(存在于IdP身份存储中)。