重用SAML断言

时间:2015-01-27 17:43:25

标签: salesforce saml f5

我正在使用多个SP实现单点登录。这是我的基本理解:

1)浏览器(用户)从服务提供商(SP)请求资源。
2)SP重定向(使用SAML请求)到身份提供商(IdP) 3)自首次登录以来,用户向(IdP)提供他/她的有效凭证 4)IdP然后将浏览器(包含SAML响应,包括SAML令牌)重定向到SP页面。

现在让我们说我有服务提供商A和服务提供商B.用户已经完成了服务提供商A的步骤。从服务提供商A(我的方案中的salesforce.com),我写了一个< strong>服务器端方法,它实例化服务提供者B上端点的标注。在这种情况下是否可以重用SAML断言?即服务提供商B会信任后端方法吗?

2 个答案:

答案 0 :(得分:2)

您必须自定义服务提供商B,才能接受,理解和解释服务提供商A获得的Assertion。它肯定不会开箱即用。

服务提供商A的SAML Assertion中包含的SAML Response包含与原始SAML Request相关联的数据,并定义消息的收件人(例如使用元素{{1} }和SubjectConfirmationData)。服务提供商B需要忽略这些字段中的值,因为它实际上不是Audience的缩进收件人。

如何在身份提供者声明用户身份的两台机器之间代理信任的问题可以通过多种标准方法来解决。一种是使用Assertion(基于WS-Trust),它定义了如何向第三方服务请求和发放令牌。另一种方法是使用OAuth 2.0。您当然也可以使用带有密码,HMAC,...的自定义方案,简单地向服务提供商B验证服务提供商A.

答案 1 :(得分:1)

简短回答 - 如果服务提供商B被实施为标准SAML 2.0 SP,则为否。

SAML 2.0断言是“有针对性”并签名的。他们有指定的受众和收件人URL。在不破坏签名的情况下,您无法更改它们。 SP A收到的断言包含作为受众的SP A的名称和作为收件人URL的SP A的ACS端点。 SP B不接受这样的断言。

是什么阻止您以标准方式调用SP B并让它启动自己的SAML 2.0流程?另一种选择是为SP B执行IDP发起的SSO流程。但并非所有IDP实现都支持它。

相关问题