SAML元数据协商过程

时间:2019-05-06 13:18:22

标签: saml saml-2.0

我是服务提供商(SP),希望通过Web SSO配置文件支持多个身份提供商(IdP)。

我正在努力了解如何与身份提供商的管理员协商SAML功能(例如,签名/不签名AuthnRequests)。

这是我目前的理解:

  1. 我创建了一个sp-metadata.xml,将其公开给所有想要与我集成的IdP。
  2. 为了与我集成,IdP管理员通过我的Web界面上载了idp-metadata.xml。我根据我的sp-metadata.xml对其进行了验证。如果他们的元数据功能与我的元数据功能不匹配,我将向他们显示上传时的详细错误,以便他们可以更改其设置。

问题:

  1. 这是有效且通用的方法吗?
  2. 如何编写SP元数据以支持所有或大多数现成的IdP?例如,我应该输入“ AuthnRequestsSigned = false”还是“ AuthnRequestsSigned = true”?似乎Web SSO配置文件没有对此提供严格的指导。

1 个答案:

答案 0 :(得分:0)

关于2:您不能真正根据SP元数据验证IdP元数据。大多数IdP不会告诉他们是否接受数字签名的SAML AuthnRequest。他们通常也不会告诉他们支持哪种签名算法或密钥大小。

某些IdP实施甚至不创建符合SAML元数据模式的元数据文件。

如果您关心安全性,那么您应该对SAML AuthnRequest进行数字签名,并要求IdP忽略签名,以防SP发送签名。

还请注意,该规范在一段时间内有所更新...请参阅新的处理规则。

替代方法:在上传过程中,请问(复选框/单选按钮)他们是否可以处理经过数字签名的SAML AuthnRequest,以及必须使用哪种签名算法。

即如果Microsoft ADFS和Azure AD无法处理SAML AuthnRequest,则它们将以非描述性SAML错误响应来纾困。