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.cn、login.partner.microsoftonline.cn、品牌域 | 浏览器会话结束 | 用于将请求路由到相应的生产实例。 |
x-ms-cpim-trans |
b2clogin.cn、login.partner.microsoftonline.cn、品牌域 | 浏览器会话结束 | 用于跟踪事务(对 Azure AD B2C 发出的身份验证请求数)和当前事务。 |
x-ms-cpim-sso:{Id} |
b2clogin.cn、login.partner.microsoftonline.cn、品牌域 | 浏览器会话结束 | 用于保留 SSO 会话。 当使我保持登录状态处于启用状态时,此 cookie 设置为 persistent 。 |
x-ms-cpim-cache:{id}_n |
b2clogin.cn、login.partner.microsoftonline.cn、品牌域 | 浏览器会话结束,身份验证成功 | 用于保留请求状态。 |
x-ms-cpim-csrf |
b2clogin.cn、login.partner.microsoftonline.cn、品牌域 | 浏览器会话结束 | 用于实现 CRSF 保护的跨网站请求伪造令牌。 有关详细信息,请阅读跨网站请求伪造令牌部分。 |
x-ms-cpim-dc |
b2clogin.cn、login.partner.microsoftonline.cn、品牌域 | 浏览器会话结束 | 用于 Azure AD B2C 网络路由。 |
x-ms-cpim-ctx |
b2clogin.cn、login.partner.microsoftonline.cn、品牌域 | 浏览器会话结束 | 上下文 |
x-ms-cpim-rp |
b2clogin.cn、login.partner.microsoftonline.cn、品牌域 | 浏览器会话结束 | 用于存储资源提供程序租户的成员身份数据。 |
x-ms-cpim-rc |
b2clogin.cn、login.partner.microsoftonline.cn、品牌域 | 浏览器会话结束 | 用于存储中继 Cookie。 |
x-ms-cpim-geo |
b2clogin.cn、login.partner.microsoftonline.cn、品牌域 | 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 的请求还选择将同步器令牌作为额外的保护层进行发送和验证,以确保加载页面的请求是正在进行的身份验证的结果。
同步器令牌是一个凭据,它不识别用户,而是绑定到一个活动的唯一身份验证会话。