如果演示者和请求的主题不同,对SAML身份验证请求的响应应包括哪些断言?

时间:2019-10-01 13:56:36

标签: authentication standards saml identity saml-2.0

我正在使用SAML v2身份验证请求协议(3.4)评估一种方案,其中 presenter requested 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)供我参考。

1 个答案:

答案 0 :(得分:0)

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

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

  

这样的断言可以包含任何类型的附加语句,但是至少一个断言必须包含至少一个认证语句。

然后,根据处理规则,这些声明的主题必须是请求的主题。

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

  • 进行身份验证的AuthnInstant属性
  • 描述认证上下文的<saml:AuthnContext>。然后可以将其留给<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef>
相关问题