5

我正在为 Web 应用程序构建基于 SAML 2.0 的身份验证。身份验证是针对 WSO2 身份服务器 (WSO2-IS) 完成的。我已经设法使用 HTTP 重定向来进行实际的身份验证。但是现在我在尝试从身份服务器“刷新”身份验证信息时遇到问题。

问题是 WSO2-IS 返回的断言只有 5 分钟的生命周期。因此,基于此,我应该每 5 分钟从 WSO2-IS 获得一个新断言。但是,除了进行另一轮重定向之外,我没有发现其他方法可以针对 WSO2-IS 执行此操作。每五分钟将用户重定向到其他地方对用户来说不是很友好。

SAML 2.0 指定了一个 AuthnQuery 请求,该请求应该使用 SOAP over HTTP 来完成。如果我理解正确,AuthnQuery 正是我为用户重新请求断言信息所需要的,但对我来说,WSO2-IS 似乎不支持这个请求。

所以,问题是,我如何能够刷新(或重新请求)来自 WSO2 身份服务器的断言信息,而无需将用户重定向到他们当前正在访问的页面之外?

4

2 回答 2

1

答案可以在 Web 浏览器 SSO 配置文件 -> 使用和消息处理规则下的 SAML 配置文件规范中找到。

上面描述的承载元素必须包含一个元素,该元素包含一个包含服务提供者的断言消费者服务 URL 的 Recipient 属性和一个限制可以传递断言的窗口的 NotOnOrAfter 属性

NotOnOrAfter 是必须传递消息的时间。

你应该考虑的是它是否存在的属性SessionNotOnOrAfterAuthnStatement

如果用于为主体建立安全上下文的一个包含 SessionNotOnOrAfter 属性,则一旦达到此时间,安全上下文应该被丢弃,除非服务提供者通过重复使用此配置文件来重新建立主体的身份。

SAML 配置文件规范

于 2013-02-08T14:12:06.093 回答
0

我不确定你是否可以使用它。这是来自 SAML 规范

消息元素用于查询“哪些包含身份验证语句的断言可用于该主题?” 一个成功的将包含一个或多个包含身份验证语句的断言。

该消息不得用作使用请求中提供的凭据进行新身份验证的请求。是对在指定主体和认证机构之间的先前交互中发生的认证行为的陈述的请求。

您正在谈论断言上的 NotOnOrAfter 约束,对吗?据我了解,这只是为了当您不再信任该消息时。我您在那之前读过它,您可以认为用户已通过身份验证。这通常是为了防止重放攻击。

于 2013-02-07T14:55:00.067 回答