3.3.4 处理规则
本博客采用知识共享署名 4.0 国际许可协议进行许可
作为对SAML定义的查询消息的响应,每一个被SAML机构返回的断言都必须包含一个<saml:Subject>元素,这个<saml:Subject>元素要和查询中指定的<saml:Subject>元素完全匹配。
<saml:Subject>元素S1完全匹配S2,当且仅当满足以下两个条件:
如果S2包含一个标识符元素(<BaseID>, <NameID>,或者<EncryptedID>),那么S1必须包含一个完全相同的标识符元素,但是元素可以在S1或S2中加密(或不加密)。换句话说,S1和S2中解密后的标识符必须是完全相同的。完全相同意味着标识符元素的内容和属性值必须是一样的。根据此定义,加密的标识符在解密后将与原始标识符相同。
如果S2包含了一个或者更多的<saml:SubjectConfirmation>元素,那么S1必须包含至少一个<saml:SubjectConfirmation>元素,这样,S1就可以通过S2中至少一个<saml:SubjectConfirmation>元素描述的方式进行确认。
举个例子,S1可能包含一个具有特定格式值的<saml:NameID>,S2可能包含一个<saml:EncryptedID>元素,且该元素是S1的<saml:NameID>元素加密后的结果,这种情况是允许的。但是,S1和S2中不能包含一个有不同的格式值或元素内容的<saml:NameID>元素,即便两个标识符被认为是指向同一个主体。
如果SAML机构不能提供一个具有满足“查询或断言引用表示的约束”的声明的断言,那么<Response>元素就不能包含<Assertion>元素,并且必须包含<StatusCode>元素,该元素的值是urn:oasis:names:tc:SAML:2.0:status:Success
。
必须遵守与基础请求和响应消息关联的所有其他处理规则。
Last updated
Was this helpful?