用于访问 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 。 例如,对远程桌面协议(RDP)或Microsoft终端服务客户端(MSTSC)使用 No ,该客户端通过应用程序代理连接到远程桌面网关服务器。
使用安全 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=LaxSameSite 属性声明 Cookie 应该如何被限制为同一站点上下文。 设置为Lax时,Cookie 仅发送到同站请求或顶级导航。 但是,应用程序代理要求将这些 Cookie 保留在第三方上下文中,以使用户在会话期间保持登录状态。 由于要求,进行了更新:

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

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

若要使用 Microsoft Entra 管理中心设置 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