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

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

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

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



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



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



仅在无法在进程之间共享 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 的 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