3.6.3 处理规则
本博客采用知识共享署名 4.0 国际许可协议进行许可
如果请求中包含一个接受方不认识的<saml:NameID>(或加密版本),那么响应方必须返回一个错误的<Status>,并且可以在其中包含一个值为urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal
的二级<StatusCode>。
如果请求中包含<Terminate>元素,那么意味着请求方(请求方是SP的场景)不会再接受来自于身份提供商的关于此主体的断言,或请求方(请求方是IDP的场景)不会再发布关于此主体的断言给服务提供提供商。接收方可以在得知名称标识符表示的关系已终止的情况下执行任何维护。它可以选择将已终止关系的主体对应的活动会话(Active Session)失效。
译者(义臻)注:当用户登录后,业务系统中会存在一个活动会话,该活动会话就是常说的登录态、用户态、用户回话。
如果服务提供商通过包含<NewID>元素(或<NewEncryptedID>元素)请求更改某个主体的标识符,那么身份提供商在随后与服务提供商进行有关此主体的通信时,必须将元素的内容作为SPProvidedID
包含在内。
如果身份提供商通过包含<NewID>元素(或<NewEncryptedID>元素)请求更改某个主体的标识符,那么服务提供商在随后与身份提供商进行有关此主体的通信时,必须将元素的内容作为<saml:NameID>包含在内。
注意,原始标识符和新标识符中的0个、1个、2个可以进行加密(使用<EncryptedID>和<NewEncryptedID>元素)。
译者(义臻)注:原文用
neither of
、either of
、both of
。即,可以选择两者都不加密、两者中加密一个、两者都加密。
在任何情况下,请求中的<saml:NameID>内容及其关联的SPProvidedID
属性都必须包含在主体的提供者之间建立的最新的名称标识符信息。
在名称标识符的Format
是urn:oasis:names:tc:SAML:2.0:nameidformat:persistent
格式的情况下,NameQualifier属性必须包含创建该标识符的身份提供商的唯一标识符。
如果标识符是在身份提供商和该服务提供商所属的附属机构之间建立的,那么SPNameQualifier属性必须包含该附属机构的唯一标识符。否则的话,它必须包含服务提供商的唯一标识符号。如果这些属性与包含协议消息的<Issuer>元素的值相匹配,则可以忽略这些属性,但由于可能会产生混淆,建议不要这样做。
对这些标识符的更改可能需要很长时间才能在请求者和响应者的中传播开来。实现方可能希望允许各方在成功完成名称标识符更改后的一段时间内接受任一标识符。不这样做可能会导致身份主体无法获取资源。
与底层请求和响应消息相关的所有其他处理规则也必须得到遵守。
Last updated
Was this helpful?