description |
---|
本博客采用知识共享署名 4.0 国际许可协议进行许可 |
如果断言中包含<Conditions>元素,则该断言的有效性取决于其提供的子元素和属性,可以按照以下顺序使用以下规则:
注意,一个条件有效性状态为Valid
的断言仍然可能是不可信的或无效的,原因包括格式不正确或结构不正确、或不是由一个值得信任的SAML断言机构发布、又或者不是通过一个值得信任的方法进行认证的。
也要注意,一些条件可能不会直接影响包含断言的有效性(它们总是评估为Valid
),但可能会限制依赖方在使用这些断言时的行为。
- 如果<Conditions>元素中没有提供子元素或属性,那么该断言在条件方面被认为是有效的。
- 如果<Conditions>元素的任何子元素或属性被确定为无效,则该断言被认为是无效的。
- 如果<Conditions>元素中存在任何无法评估的子元素或属性,或者存在无法理解的元素,则无法决定该断言的有效性,并且认为该断言是模糊不定的。
- 如果<Conditions>元素中的所有子元素或属性是合法的,那么该断言在条件方面被认为是有效的。
第一条规则会终止评估的过程,因此“确定一个断言是无效的”要优先于“确定一个断言是模糊不定的”。
译者(义臻)注:英文中用
Invalid
表示无效,用Valid
表示有效,用Indeterminate
表示模糊不定的。
依赖方必须拒绝被认定为无效的或者模糊不定的断言(不论这个断言是在何种上下文或者规则描述中处理的),就和断言格式错误或其他无法使用的情况一样。
译者(义臻)注:上面这段话的意思是,不管在什么场景下,只要<Conditions>元素被认定为无效的或者模糊不定的,依赖方都不能使用这个断言。