【问题标题】:How to skip the default signout page when logging out from Azure AD?从 Azure AD 注销时如何跳过默认注销页面?
【发布时间】:2017-10-03 09:30:51
【问题描述】:

当我单击托管在 Azure 上的 Web 应用程序上的注销按钮时,我会注销并转到以下页面:

(图一)

然后它会将我重定向到 Azure 默认注销页面(我不想看到):

(图二)

每当我点击“返回网站”时,它都会将我带回到我的应用程序(无需先登录),但它在我的数据表中没有显示任何数据,这意味着我已退出(在这种情况下我不想首先显示网络应用程序)。

当我手动刷新页面时,确实证明我已退出,将我重定向到 Azure AD 登录页面。

所以我的问题是:如何跳过带有“返回网站”链接(图 2)的默认 Azure 注销页面,并直接从单击我的 Web 应用程序中的注销按钮转到 Azure AD 登录页面?

【问题讨论】:

    标签: azure azure-active-directory logout


    【解决方案1】:

    通常,Azure AD 会重定向到您告诉它的页面。当我们使用OpenId连接协议发送注销请求时,需要传递post_logout_redirect_uri参数,请检查该参数是否传递正确。例如,我们将传递 web 应用程序的默认页面用于退出请求。

    有关使用 Azure AD 注销的更多详细信息,请参阅以下链接:

    Send a sign-out request

    【讨论】:

    • 感谢您的回复! Microsoft 支持人员提到“post_logout_redirect_uri”代码仅在我们使用 OWIN 控制整个注销流程时才有效。我们通过 Azure App 服务启用了身份验证,该服务由将身份验证注入 Web App 运行时的后端服务处理。单击“返回网站”链接似乎触发了我在 Vue 应用程序的“已安装”生命周期挂钩中实现的获取请求。我删除了这个获取请求,现在它似乎非常随机地工作。有时它会要求重新验证点击链接,有时它不会。
    • 在 Safari 中完美运行,在 Chrome 中仅在第一次运行,之后点击“返回网站”链接时不再要求重新验证,仅在手动刷新时.
    【解决方案2】:

    这个问题似乎与缓存有关。

    '/.auth/logout' 清除 cookie 但不清除缓存。我通过调整缓存头让客户端知道应用程序不可缓存来解决它:

    在 Web.config 文件中将其添加到 system.Webserver-tag:

    <staticContent>
        <clientCache cacheControlMode="DisableCache" />
    </staticContent>
    

    当您偏爱缓存时,这可能不是最佳解决方案,但在我的情况下,这并不是太大的权衡。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-10
      • 2020-11-27
      • 1970-01-01
      • 2018-08-10
      • 2018-03-09
      • 2021-06-12
      • 2017-06-03
      • 2020-06-05
      相关资源
      最近更新 更多