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

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

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

Cookie 设置 默认 描述 建议
使用仅限 HTTP 的 Cookie “是”允许应用程序代理在 HTTP 响应标头中包含 HTTPOnly 标志。 此标志可带来额外的安全性,例如,它会阻止客户端脚本 (CSS) 复制或修改 cookie。



在我们支持“仅限 HTTP”设置之前,应用程序代理为 Cookie 加密并通过安全传输层安全性 (TLS) 通道传输 Cookie,以防其被修改。 
选择“是”,可提升安全性。



为那些需要访问会话 cookie 的客户端或用户代理使用“否”。 例如,对通过应用程序代理连接到远程桌面网关服务器的远程桌面协议 (RDP) 或 Microsoft 终端服务客户端 (MTSC) 使用“否”
使用安全 Cookie “是”允许应用程序代理在 HTTP 响应标头中包含 Secure 标志。 Secure Cookie 通过经由 TLS 保护的通道(如 HTTPS)来传输 cookie,可增强安全性。 TLS 阻止以明文形式传输 Cookie。 选择“是”,可提升安全性。
使用永久性 Cookie “是”允许应用程序代理设置其访问 Cookie,使其在 Web 浏览器关闭时不会过期。 其有效性一直持续到访问令牌过期为止,或持续到用户手动删除持久性 cookie 为止。 使用“否”是由于使用户一直处于通过验证的状态会产生安全风险。



建议仅为不能在进程间共享 cookie 的较旧应用程序使用“是”。 更好的做法是更新应用程序,在进程之间共享 cookie,而不是使用持久性 cookie。 例如,可能需要持久性 cookie 来允许用户从 SharePoint 站点的资源管理器视图中打开 Office 文档。 在没有持久性 cookie 的情况下,如果不在浏览器、资源管理器进程和 Office 进程之间共享访问 cookie,则此操作可能失败。

SameSite Cookie

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

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

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

使用 Microsoft Entra 管理中心设置 Cookie 设置:

  1. 至少以应用程序管理员的身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“应用程序代理”。
  3. 在“其他设置”下,将 cookie 设置设置为“是”或“否”
  4. 单击“保存”应用所做的更改。

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

Get-AzureADApplicationProxyApplication -ObjectId <ObjectId> | fl * 

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

仅限 HTTP 的 Cookie

Set-AzureADApplicationProxyApplication -ObjectId <ObjectId> -IsHttpOnlyCookieEnabled $true 
Set-AzureADApplicationProxyApplication -ObjectId <ObjectId> -IsHttpOnlyCookieEnabled $false 

安全 Cookie

Set-AzureADApplicationProxyApplication -ObjectId <ObjectId> -IsSecureCookieEnabled $true 
Set-AzureADApplicationProxyApplication -ObjectId <ObjectId> -IsSecureCookieEnabled $false 

持久性 Cookie

Set-AzureADApplicationProxyApplication -ObjectId <ObjectId> -IsPersistentCookieEnabled $true 
Set-AzureADApplicationProxyApplication -ObjectId <ObjectId> -IsPersistentCookieEnabled $false