Azure AD - 应用程序注册 - 注销URL - 什么是SID?

问题描述 投票:1回答:3

我已经在PHP中创建了自己的应用程序,可以对Azure进行身份验证,然后从Office 365(图形)中提取数据 - 它运行良好!

当用户退出Office 365时,我也需要将它们从我的应用程序中注销。

我正在使用Logout URL(在app注册中) - 我认为这是出于这个目的。我可以看到我定义的URL被发布为用户注销,但我不明白我应该如何将其与用户匹配,即我如何知道哪个用户已注销? - 我可以看到Azure发布了一个SID字段[sid] => c3db7b82-adef-43b6-b852-5955f877fbf9但是我不明白如何将SID与其他任何东西相匹配以确定用户是谁?

php azure-active-directory office365api office365-apps
3个回答
0
投票

你需要知道它是哪个用户吗?

当用户选择退出时,您可以:

  1. 重定向它们在AAD注销
  2. AAD将它们重定向回您的应用程序
  3. 删除应用的会话Cookie 如果你需要清理一些东西,你可以阅读会话cookie并找出它们是谁
  4. 将它们重定向到某个页面 - >用户已注销

0
投票

算了吧!

在Azure中设置应用程序注册时,您必须提供ReplyUrl,因此Azure会在用户登录时向您指定的页面发送GET [session_state]。

您会发现,在注销用户时,SID将与先前的GET session_state匹配,从而允许您跟踪用户。


0
投票

根据MarkB的回答,在这里添加一些额外的细节:

就我而言,Azure正在回复我的回复网址[POST]。

当您的应用程序向Azure提出身份验证请求时,如MarkB所述,Azure会对您网站上的某个位置(您在Azure应用程序注册设置中的回复网址中定义)进行回调。对此回调URL的调用将包含一些查询字符串参数(在我的例子中,它是“code”,“id_token”,“state”,“session_state”)

session_state参数是您想要的参数。

当您注销应用程序(或Outlook 365或其他)时,将调用您在应用程序注册中指定的注销URL。该logout url调用的SID查询字符串参数与上面提到的session_state对齐。

如果其他人也遇到这个问题,只是想清楚这一点。

在我查看网络选项卡上的浏览器调试工具并注意到我没有收到[GET]请求,而是发出[POST]请求之前,我无法弄清楚GET [session_state]的含义。

© www.soinside.com 2019 - 2024. All rights reserved.