用于访问 Microsoft Entra ID 中的本地应用程序的 Cookie 设置

概述

Microsoft Entra ID 使用访问和会话 Cookie 通过应用代理访问本地应用程序。 了解如何配置应用程序代理 Cookie 设置。

应用代理使用以下访问和会话 Cookie 设置。

Cookie 设置 违约 Description Recommendations
使用 HTTP-Only Cookie 否 允许 应用程序代理在 HTTP 响应标头中包含 HTTPOnly 标志。 此标志提供额外的安全优势,例如,它阻止客户端脚本(CSS)复制或修改 Cookie。



在 HTTP-Only 设置可用之前,应用程序代理通过安全传输层安全性 (TLS) 通道加密和传输 Cookie,以防止修改。
出于额外的安全优势,请使用 “是 ”。



对需要访问会话 Cookie 的客户端或用户代理使用 No 。 例如,将 No 用于通过应用程序代理连接到 Remote Desktop 网关服务器的 Remote Desktop 协议(RDP)或 Microsoft 终端服务客户端(MSTSC)。
使用安全 Cookie 是的 是 允许应用程序代理在 HTTP 响应标头中包含安全标志。 安全 Cookie 通过将 Cookie 传输至基于 TLS 安全通道(如 HTTPS)来增强安全性。 TLS 阻止以明文形式传输 Cookie。 出于额外的安全优势,请使用 “是 ”。
使用持久 Cookie 否 是 允许应用程序代理在 Web 浏览器关闭时将其访问 Cookie 设置为不过期。 持久性持续到访问令牌过期,或者用户手动删除永久性 Cookie 为止。 由于与保持用户进行身份验证相关的安全风险,请使用 No 。



仅在无法在进程之间共享 Cookie 的较旧应用程序中使用Yes。 最好更新应用程序以处理进程之间的共享 Cookie,而不是使用持久性 Cookie。 例如,可能需要持久 Cookie,以允许用户从SharePoint网站在资源管理器视图中打开 Office 文档。 如果没有持久性 Cookie,如果在浏览器、资源管理器进程和 Office 进程之间不共享访问 Cookie,则此作可能会失败。

SameSite Cookie

未指定 SameSite 属性的 Cookie 被视为设置为 SameSite=Lax。 SameSite 属性声明 Cookie 应该如何被限制为同一站点上下文。 设置为Lax时,Cookie 仅发送到同站请求或顶级导航。 但是,应用程序代理要求将这些 Cookie 保留在第三方上下文中,以使用户在会话期间保持登录状态。 由于要求,进行了更新:

  • 将 SameSite 属性设置为 None 可确保在第三方环境中发送应用程序代理会话 Cookie。
  • 将 “使用安全 Cookie ”设置设置为“ 是 ”作为默认值。 Chrome 拒绝不使用标志的 Secure Cookie。 此默认设置适用于通过应用程序代理发布的所有现有应用程序。 应用程序代理访问 Cookie 设置为“安全”,并且仅通过 HTTPS 传输。 此安全 Cookie 默认值仅适用于会话 Cookie。

此外,如果您的后端应用程序有需要第三方上下文的 Cookie,则必须显式选择使用 SameSite=None,通过更改应用程序设置来实现。 应用程序代理将 Set-Cookie 标头转换为其 URL 并遵循设置。

若要使用 Microsoft Entra admin center设置 Cookie 设置,请执行以下操作:

  1. 以至少应用管理员身份登录到Microsoft Entra 管理中心。
  2. 浏览到 Entra ID>企业应用>应用代理。
  3. 在 “其他设置”下,将 Cookie 设置设置为 “是 ”或 “否”。
  4. 选择保存以应用更改。

若要查看应用程序的当前 Cookie 设置,请使用以下 PowerShell 命令:

Get-MgBetaApplication -ApplicationId <Id> | FL *

在以下 PowerShell 命令中, <Id> 是应用程序的 ID 。

Http-Only Cookie

Set-EntraBetaApplicationProxyApplication -ApplicationId <Id> -IsHttpOnlyCookieEnabled $true 
Set-EntraBetaApplicationProxyApplication -ApplicationId <Id> -IsHttpOnlyCookieEnabled $false

安全 Cookie

Set-EntraBetaApplicationProxyApplication -ApplicationId <Id> -IsSecureCookieEnabled $true 
Set-EntraBetaApplicationProxyApplication -ApplicationId <Id> -IsSecureCookieEnabled $false

持久 Cookie

Set-EntraBetaApplicationProxyApplication -ApplicationId <Id> -IsPersistentCookieEnabled $true 
Set-EntraBetaApplicationProxyApplication -ApplicationId <Id> -IsPersistentCookieEnabled $false