我正在为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 Identity Server刷新(或重新请求)断言信息,而无需将用户重定向到他们当前正在访问的页面?
答案 0 :(得分:1)
答案可以在Web浏览器SSO配置文件中的SAML proile speciefication中找到 - >用法和消息处理规则。
上面描述的承载元素必须包含 包含收件人的元素 包含服务提供者的断言使用者服务的属性 URL和限制窗口期间的NotOnOrAfter属性 断言可以传递
NotOnOrAfter是消息传递的时间。
如果SessionNotOnOrAfter
中存在属性AuthnStatement
,您应该考虑的事项。
如果用于建立安全上下文 principal包含一个SessionNotOnOrAfter属性,即安全性 上下文应该在达到这个时间后丢弃,除非 服务提供者通过重复重新建立主体的身份 使用此个人资料。
答案 1 :(得分:0)
我不确定你是否可以使用它。这来自SAML规范
message元素用于进行查询“What 包含身份验证语句的断言可用于此 主题?“成功将包含一个或多个断言 包含身份验证语句
消息必须 不能用作使用凭据进行新身份验证的请求 在请求中提供。是一个声明请求 关于先前交互中发生的身份验证操作 在指定的主题和认证机构之间。
你在谈论关于断言的NotOnOrAfter禁令,对吧? 据我所知,这只是因为你不能再相信这个消息了。我在那个时间到来之前你读过它你可以认为用户是经过身份验证的。这通常是为了防止重播。