繁体   English   中英

Azure AD Auth - 仅注销特定应用程序/?

[英]Azure AD Auth - log out of specific app/ only?

这是我的注销代码(使用 CakePHP)。

public function logout()
{
    $this->clearTokens();
    $this->Authentication->logout();
    return $this->redirect('https://login.microsoftonline.com/' . 
         Configure::read('Azure.tenantId') . '/oauth2/logout?post_logout_redirect_uri=' 
         . urlencode('https://example.com/'));     
}

所以用户在应用程序中点击“注销”; 它清除了一些 session 数据; 然后重定向到 Microsoft 以正确注销并再次重定向回来。

这似乎工作正常,但它让我退出一切 - 我希望只退出特定的应用程序 - 我已经用tenantId替换了appId ,但似乎没有任何区别。

这可能吗?

您的注销行为与官方文档中的描述不符。

当您将用户重定向到 end_session_endpoint 时,Microsoft 标识平台会从浏览器中清除用户的 session。 但是,用户可能仍会登录到使用 Microsoft 帐户进行身份验证的其他应用程序。 为了使这些应用程序能够同时注销用户,Microsoft 标识平台向用户当前登录的所有应用程序的已注册 LogoutUrl 发送 HTTP GET 请求。

换句话说,仅调用/logout?post_logout_redirect_uri={0}端点不足以让您的用户退出所有应用程序。 您仍然需要从应用注册门户设置LogoutUrl并在应用程序代码中实现这样的LogoutUrl以支持应用程序中的单点注销。

确保您删除了配置中的LogoutUrl部分,它不会让您从任何地方注销。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM