在SAML2规范中,断言中有几个地方可以指定生命周期.
<SubjectConfirmationData>元素包含一个NotOnOrAfter属性.<Conditions>元素包含一个NotOnOrAfter属性.<AuthnStatement>元素包含一个SessionNotOnOrAfter属性.他们每个人的意义是什么?它们如何相互关联?
具体来说,当......时必须检查哪一个
每个NotOnOrAfter都在SAML2核心规范中描述.我在这里列出了我能找到的描述这些属性的部分.
无法再确认主题的时刻.时间值以UTC编码,如第1.3.3节所述.
请注意,可选的NotBefore和NotOnOrAfter属性指定的时间段(如果存在)应该落在元素的NotBefore和NotOnOrAfter属性指定的整个断言有效期内.如果两个属性都存在,则NotBefore的值必须小于(早于)NotOnOrAfter的值.
指定断言到期的时刻.时间值以UTC编码,如第1.3.3节所述.
NotBefore和NotOnOrAfter属性在其使用的配置文件的上下文中指定断言有效性的时间限制.他们不保证声明中的陈述在整个有效期内是正确或准确的.NotBefore属性指定有效期间隔开始的时刻.NotOnOrAfter属性指定有效期间隔结束的时刻.如果省略NotBefore或NotOnOrAfter的值,则认为它未指定.如果未指定NotBefore属性(并且如果提供的所有其他条件评估为有效),则断言对于NotOnOrAfter属性指定的时间点之前的任何时间的条件都是有效的.如果未指定NotOnOrAfter属性(并且如果提供的所有其他条件都评估为有效),则断言对于NotBefore属性指定的时间段内的条件是有效的,没有到期.如果两个属性都未指定(并且如果提供的任何其他条件评估为有效),则断言在任何时候都与条件有效.
如果两个属性都存在,则NotBefore的值必须小于(早于)NotOnOrAfter的值.
指示与封闭断言派生的主题的会话的上限.时间值以UTC编码,如第1.3.3节所述.此属性与断言中可能存在的NotOnOrAfter条件属性之间没有必需的关系.它留给配置文件根据此属性为依赖方提供特定的处理规则.
And*_*bel 20
我将这个问题交叉发布到SAML-dev邮件列表,得到了Scott Cantor的回答,他是规范的编辑.
在该时间<SubjectConfirmationData>有多长时断言可绑标的信号.在Web SSO中,通常使用主题确认方法"bearer",这意味着在这段时间内我们可以相信断言适用于提供断言的断言.断言可能在更长的时间内有效,但我们必须在此时间范围内创建会话.这在Web SSO配置文件部分4.1.4.3 中进行了描述.时间<SubjectConfirmationData>必须在那些时间间隔内<Conditions>.
时间<Conditions>是整个断言的有效性.在此之后不应该消耗它.没有什么能阻止SP上的用户会话延伸到这个时间点之外.
SessionNotOnOrAfter是完全不同的东西,与断言或主题的生命周期没有直接关系.它是idp可用于控制SP会话可能长度的参数.请注意,此参数定义为SP应根据SAML2Core规范处理,但远非所有SP实现.像往常一样执行Shibboleth的实现示例始终会尊重此参数的出现.使用Single Logout时,此参数更为关键,因为它会同步SP和Idp上的会话超时,以确保SP不会为Idp不再知道的会话发出注销请求.
我认为,只有Saml2规范的作者才能清楚地回答这个问题。我还猜想他们可以写一本10000页的书来解释人们多年来要求的有关规范的许多“为什么”问题。无论如何,基于我有限的知识和经验,我对这些属性的解释是:
让我们看一个例子:
对于(1),仅当SubjectConfirmationData.NotOnOrAfter和Conditions.NotOnOrAfter均有效时,断言才有效。由于该断言有效,因此SP将为用户创建一个登录会话。会话应指定多长时间由SessionNotOnOrAfter值指定。
3呢?我想说,当Conditions.NotOnOrAfter仍然有效时,该令牌被视为有效。根据Scott Cantor的说法:“处理规则特定于配置文件和使用上下文。” 来源:https : //lists.internet2.edu/sympa/arc/mace-opensaml-users/2011-05/msg00007.html在该链接中,他们还讨论了主题和条件的生存期,其中条件的生存期通常比主题的。
| 归档时间: |
|
| 查看次数: |
12892 次 |
| 最近记录: |