当前位置: 首页 > 知识库问答 >
问题:

重用SAML断言

周翼
2023-03-14

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

1) 浏览器(用户)向服务提供商(SP)请求资源
2)SP重定向(使用SAML请求)到身份提供程序(IdP)
3)由于这是第一次登录,用户将向(IdP)提供其有效凭据
4)然后,IdP将浏览器(带有包含SAML令牌的SAML响应)重定向到SP页面。

现在,假设我有服务提供商A和服务提供商B。一个用户已经完成了关于服务提供商A的步骤。从服务提供商A(在我的场景中是salesforce.com),我编写了一个服务器端方法,该方法实例化了对服务提供商B上endpoint的调用。在这种情况下,是否可以重用SAML断言?一、 e.服务提供商B会信任后端方法吗?

共有2个答案

南宫勇军
2023-03-14

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

SAML 2.0断言是“有针对性的”和签名的。它们有一个指定的受众和一个接收者URL。您不能在不破坏签名的情况下更改它们。SP A收到的断言包含SP A作为受众的名称和SP A的ACS终端作为接收者URL。SP B不会接受这样的断言。

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

符风畔
2023-03-14

您必须自定义服务提供商B,以便它接受、理解和解释服务提供商A获得的断言。这当然不是现成的。

服务提供商A的SAML响应中包含的SAML断言包含与原始SAML请求相关的数据片段,并定义消息的收件人(例如使用元素SubjectConfirmationData和受众)。服务提供商B需要忽略这些字段中的值,因为它实际上不是断言的缩进收件人。

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

 类似资料:
  • 我有一个Java Web应用程序,我想将其作为服务提供商并实现SAML。我不确定如何做这件事的工作流程。 我已经阅读了这个SO问题,但仍然无法完全理解。在问题中,他们说他们需要向IDP发送请求,如果我是对的,称为断言。 如何创建断言?我在那里看到了样品。但是在哪里传递登录凭据呢? 另外,我如何在IDP注册我的应用程序,我是否需要安装IDP为此提供的一些证书?工作流程是什么? 谢谢

  • 我有一个webservice操作,其中我将获得SAML断言作为请求体的一部分。我跟踪XSD: saml:断言是指:< br>

  • 我们有一个产品有一个客户,当我们作为服务提供商并且idp在客户端时,我们使用Spring Security SAML为该客户实现了SAML流。 现在,我们有另一个客户也希望身份验证与 SAML 一起使用,并且我们希望同一 SP 为此客户实现 SAML 流,第二个客户还将有 2 个用于 SAML 的流,一个用于移动设备,另一个用于使用相同 IDP 的其他设备。两个客户的 IDP 是不同的。 问题 两

  • 我试图从开发人员的角度理解IdP发起的SSO的基本流程。我还试图从随。NET集成工具包。 基于此链接:http://documentation.pingidentity.com/display/PF610/OpenToken 适配器配置 问:PingFederate 服务器如何解析 SAML 断言?我是否必须从 SP 服务器对其进行编码?还是PingFederate服务器的设置会进行解析? 我现在

  • 我正在尝试使用谷歌办公套件设置SAML。但是我得到了这个错误 我已经配置断言应该在我的SP中签名。我可以在其他IDP(如onelogin、okta)中看到签署响应断言的选项。该配置适用于其他IDP,但看不到在谷歌办公套件SAML中唱响应断言的选项。 在Gsuite中,我只能看到签名响应的选项,而不能看到断言。 如何正确设置此设置? SP元数据如下所示:

  • 这是我面临的问题,需要一些帮助/指导。 我已经从引擎生成了一条XML消息,需要将其解析为服务。为了做到这一点,我必须将该消息更改为SOAP消息,并在其上插入SAML令牌。我正在尝试使用C#代码执行此操作。下面是我生成的输入消息和预期的输出: 近期产量