你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure AD B2C 的 Cookie 定义

以下各部分提供了有关 Azure Active Directory B2C (Azure AD B2C) 中使用的 Cookie 的信息。

SameSite

Azure B2C 服务与 SameSite 浏览器配置(其中包括通过 Secure 属性提供的对 SameSite=None 的支持)兼容。

为了保护对站点的访问,Web 浏览器将引入一个新的“默认保护”模型,除非另行指定,该模型假定所有 Cookie 都应阻止来自外部的访问。 Chrome 浏览器是第一个实现此更改的浏览器,从 2020 年 2 月份的 Chrome 80 开始。 有关准备在 Chrome 中进行更改的详细信息,请参阅 Chromium 博客上的开发人员:准备使用新的 SameSite=None; 安全 Cookie 设置

开发人员必须使用新的 Cookie 设置 SameSite=None 来指定用于跨站点访问的 Cookie。 当存在 SameSite=None 属性时,必须使用一个额外的 Secure 属性,以便使跨站点 Cookie 只能通过 HTTPS 连接进行访问。 验证并测试你的所有应用程序,包括那些使用 Azure AD B2C 的应用程序。

有关详细信息,请参阅:

Cookie

下表列出了 Azure AD B2C 中使用的 Cookie。

名称 Domain 过期时间 用途
x-ms-cpim-admin main.b2cadmin.ext.azure.com 浏览器会话结束 保存各个租户的用户成员身份数据。 用户所属的租户,以及成员身份级别(管理员或用户)。
x-ms-cpim-slice b2clogin.com、login.microsoftonline.com、署名域 浏览器会话结束 用于将请求路由到相应的生产实例。
x-ms-cpim-trans b2clogin.com、login.microsoftonline.com、署名域 浏览器会话结束 用于跟踪事务(对 Azure AD B2C 发出的身份验证请求数)和当前事务。
x-ms-cpim-sso:{Id} b2clogin.com、login.microsoftonline.com、署名域 浏览器会话结束 用于保留 SSO 会话。 当persistent 处于启用状态时,此 cookie 设置为 persistent
x-ms-cpim-cache:{id}_n b2clogin.com、login.microsoftonline.com、署名域 浏览器会话结束,身份验证成功 用于保留请求状态。
x-ms-cpim-csrf b2clogin.com、login.microsoftonline.com、署名域 浏览器会话结束 用于实现 CRSF 保护的跨网站请求伪造令牌。 有关详细信息,请阅读跨网站请求伪造令牌部分。
x-ms-cpim-dc b2clogin.com、login.microsoftonline.com、署名域 浏览器会话结束 用于 Azure AD B2C 网络路由。
x-ms-cpim-ctx b2clogin.com、login.microsoftonline.com、署名域 浏览器会话结束 上下文
x-ms-cpim-rp b2clogin.com、login.microsoftonline.com、署名域 浏览器会话结束 用于存储资源提供程序租户的成员身份数据。
x-ms-cpim-rc b2clogin.com、login.microsoftonline.com、署名域 浏览器会话结束 用于存储中继 Cookie。
x-ms-cpim-geo b2clogin.com、login.microsoftonline.com、署名域 1 小时 用作确定资源租户主地理位置的提示。

跨网站请求伪造令牌

若要防止跨网站请求伪造 (CSRF) 攻击,Azure AD B2C 应用同步器令牌策略机制。 有关此模式的更多详细信息,请查看跨网站请求伪造防护文章。

Azure AD B2C 生成一个同步器令牌,并在两个位置添加它;在标记为 x-ms-cpim-csrf 的 cookie 中,以及在发送到 Azure AD B2C 的页面 URL 中名为 csrf_token 的查询字符串参数中。 当 Azure AD B2C 服务处理来自浏览器的传入请求时,它会确认令牌的查询字符串和 cookie 版本都存在并且它们完全匹配。 此外,它还会验证令牌内容的元素,以针对正在进行的身份验证的预期值进行确认。

例如,在注册或登录页面中,当用户选择“忘记的密码”或“立即注册”链接时,浏览器会将 GET 请求发送到 Azure AD B2C,以加载下一页的内容。 此外,加载内容 Azure AD B2C 的请求还选择将同步器令牌作为额外的保护层进行发送和验证,以确保加载页面的请求是正在进行的身份验证的结果。

同步器令牌是一个凭据,它不识别用户,而是绑定到一个活动的唯一身份验证会话。