我使用Azure Active Directory对我的用户进行身份验证,这是我将用户重定向到的网址:
https://login.windows.net/common/oauth2/authorize?response_type=id_token&redirect_uri=https%3A%2F%2Ftest.com%2F&client_id=CB08A120-12BD-11E4-8143-DA6DD34483DE&scope=openid&response_mode=form_post&nonce=50b4146c-585c-49e5-a78e-56d9685c56f2
我得到的回复是帖子的形式,有两个参数:
id_token=*
session_state=*
但是,我并不完全确定session_state
是什么。我试过查看文档,但似乎找不到合适的答案。我在文档中找到session_state
的地方here和here,但两人都没有帮助。是session_state
我应该在cookie中持久存储并向Azure发送每个未来的请求吗?或者它的目的和处理它的正确方法是什么?
答案 0 :(得分:6)
它标识Azure AD STS上的经过身份验证的会话。
在第一次交互式登录后,如果您重新发出OpenIDConnect SSO请求,系统将不再提示用户再次登录 - 但您的应用程序将获得新的令牌,但sessions_state将与在之前的回复中。但是,如果您添加& prompt = login,则在您的SSO请求中,将提示用户再次登录,这次您将返回的sessions_state将会有所不同。
大多数应用程序只会忽略该值 - 想要跟踪用户确实重新进行身份验证的人会关注它。
希望这有帮助。