【问题标题】:What assertions should a response to a SAML Authentication Request include if the presenter and requested subject are different?如果演示者和请求的主题不同,对 SAML 身份验证请求的响应应该包括哪些断言?
【发布时间】:2019-10-01 13:56:36
【问题描述】:

我正在评估使用 SAML v2 身份验证请求协议 (3.4) 的场景,其中 presenterrequested subject 不同,即演示者正在向身份提供者,以便获得关于另一个主题的断言。

我的问题是:响应此类请求需要哪些断言,以及关于哪些主题?


在这种情况下,<AuthnRequest> 使用 <saml:Subject> 元素标识主题。身份验证请求的<Response> 包含断言。从第 3.4 节开始,“此类断言可能包含任何类型的附加语句,但至少一个断言必须包含至少一个身份验证语句。”

在“3.4.1.4 处理规则”下,我确定了成功响应的以下规则:

  • 响应者必须最终回复 <AuthnRequest> 并带有 <Response> 消息,其中包含一个或多个符合请求定义的规范的断言(第 2229 行)
  • 如果请求中的 <saml:Subject> 元素存在,则结果断言的 <saml:Subject> 必须与请求 <saml:Subject> 强匹配,如第 3.3.4 节所述
  • <AuthnRequest> 中专门定义的所有内容都是可选的,尽管某些配置文件可能需要其中一些内容。在完全没有任何特定内容的情况下,暗示了以下行为:
    • 返回的断言必须包含代表演示者的<saml:Subject> 元素。

在我看来,这些规则要求每个响应断言中的 <saml:Subject> 等于请求的主题和演示者。

我正在使用“OASIS 安全性的断言和协议” 断言标记语言 (SAML) V2.0" (saml-core-2.0-os) 作为我的参考。

【问题讨论】:

    标签: authentication standards saml identity saml-2.0


    【解决方案1】:

    “完全没有任何特定内容”这一短语对于理解此处的标准至关重要。由于在请求中包含<saml:Subject> 意味着请求确实具有特定内容,因此我的问题中的最后一个要点不适用。

    但是,第 3.4 节的第一部分仍然说:

    此类断言可以包含任何类型的附加语句,但至少一个断言必须包含至少一个身份验证语句。

    根据处理规则,这些断言的主题必须是请求的主题。

    所需的身份验证声明必须引用此主题(可以说从未经过身份验证)。如果这对应于 <AuthnStatement> 元素,则该元素需要:

    • 进行身份验证时的 AuthnInstant 属性
    • 描述身份验证上下文的<saml:AuthnContext>。这可以留给<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多