用于在 Microsoft Entra ID 中访问本地应用程序的 Cookie 设置
Microsoft Entra ID 具有访问和会话 Cookie,用于通过应用程序代理访问本地应用程序。 了解如何使用应用程序代理 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=Lax。 SameSite
属性声明了应如何将 Cookie 限制为同一站点上下文。 设置为 Lax
时,Cookie 仅发送到同一站点请求或顶级导航。 但应用程序代理要求将这些 Cookie 保存在第三方上下文中,使用户能够在其会话期间正确登录。 由于相关要求,进行了更新:
- 将 SameSite 属性设置为“无” 。 应用程序代理会话 Cookie 在第三方上下文中正确发送。
- 将“使用安全 Cookie”设置的默认值设为“是” 。 Chrome 拒绝不使用
Secure
标志的 Cookie。 此更改将应用于通过应用程序代理发布的所有现有应用程序。 应用程序代理访问 Cookie 设置为安全,并且仅通过 HTTPS 传输。 此更改仅应用于会话 Cookie。
此外,如果后端应用程序具有需要第三方上下文的 Cookie,则必须通过将应用程序更改为使用 SameSite=None
来显式选择加入。 应用程序代理将 Set-Cookie
标头转换为其 URL 并遵循设置。
设置 Cookie 设置 - Microsoft Entra 管理中心
使用 Microsoft Entra 管理中心设置 Cookie 设置:
- 至少以应用程序管理员的身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“应用程序”>“企业应用程序”>“应用程序代理”。
- 在“其他设置”下,将 cookie 设置设置为“是”或“否”。
- 单击“保存”应用所做的更改。
查看当前的 Cookie 设置 - PowerShell
要查看应用程序当前的 Cookie 设置,请使用此 PowerShell 命令:
Get-AzureADApplicationProxyApplication -ObjectId <ObjectId> | fl *
设置 Cookie 设置 - PowerShell
在以下 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