你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
在开始之前,请使用此页面顶部的 “选择策略类型 选择器”来选择要设置的策略类型。 Azure Active Directory B2C 提供了两种定义用户如何与应用程序交互的方法:通过预定义的用户流,或者通过可完全配置的自定义策略。 对于每种方法,本文中所需的步骤都不同。
此功能仅适用于自定义策略。 对于设置步骤,请在前面的选择器中选择“自定义策略”。
Azure Active Directory B2C(Azure AD B2C)以策略密钥的形式存储机密和证书,以与它集成的服务建立信任。 这些信任包括:
- 外部身份提供者
- 使用 REST API 服务进行连接
- 令牌签名和加密
本文讨论了您需要了解的有关 Azure AD B2C 使用的策略密钥的内容。
注释
目前,策略密钥的配置仅限于 自定义策略 。
可以在 Azure 门户中的 “策略密钥 ”菜单下配置机密和证书,以便在服务之间建立信任。 密钥可以是对称密钥或非对称密钥。 对称加密或称共享密钥加密,是指使用共享密钥来同时进行数据的加密和解密。 非对称 加密或公钥加密是一种加密系统,它使用密钥对,由与信赖方应用程序和仅 Azure AD B2C 已知的私钥共享的公钥组成。
策略密钥集和密钥
Azure AD B2C 中策略密钥的顶级资源是 Keyset 容器。 每个密钥集至少包含一个 密钥。 键具有以下属性:
特征 | 必选 | 注解 |
---|---|---|
use |
是的 | 用法:标识公钥的预期用途。 加密数据 enc ,或验证数据 sig 上的签名。 |
nbf |
否 | 激活日期和时间。 管理员可以手动设置替代值。 |
exp |
否 | 到期日期和时间。 管理员可以手动设置替代值。 |
建议根据 PKI 标准设置密钥激活和过期值。 出于安全或策略原因,可能需要定期轮换这些证书。 例如,你可能有一个策略来每年轮换所有证书。
若要创建密钥,可以选择以下方法之一:
- 手动 - 使用定义的字符串创建机密。 机密是对称密钥。 可以设置激活和到期日期。
- 生成 - 自动生成密钥。 可以设置激活和到期日期。 有两个选项:
- 机密 - 生成对称密钥。
- RSA - 生成密钥对(非对称密钥)。
- 上传 - 上传证书或 PKCS12 密钥。 证书必须包含私钥和公钥(非对称密钥)。
密钥滚动更新
出于安全考虑,Azure AD B2C 可以定期轮换密钥,或者在紧急情况下立即轮换。 任何与 Azure AD B2C 集成的应用程序、标识提供者或 REST API 都应准备好处理密钥滚动更新事件,无论其发生频率如何。 否则,如果应用程序或 Azure AD B2C 尝试使用过期密钥执行加密作,则登录请求将失败。
如果 Azure AD B2C 密钥集具有多个密钥,则任何一次只有一个密钥处于活动状态,具体取决于以下条件:
密钥激活基于 激活日期。
- 密钥按激活日期按升序排序。 激活日期更远的密钥在列表中显示靠后。 没有激活日期的密钥位于列表底部。
- 当当前日期和时间超过密钥的激活日期时,Azure AD B2C 将激活该密钥,并停止使用之前的活动密钥。
当当前密钥的过期时间已过并且密钥容器包含有效 nbf(未之前) 和 exp(过期) 时间的新密钥时,新密钥将自动变为活动状态。 新的令牌会使用新激活的密钥来进行签名。 在管理员禁用之前,可以保留为令牌验证发布的过期密钥,但必须 通过提交支持请求来请求此密钥。
如果当前密钥的到期时间已过,并且密钥容器未包含具有有效的“不早于”和“到期”时间的新密钥,则 Azure AD B2C 将无法使用到期的密钥。 Azure AD B2C 在自定义策略的依赖组件内引发错误消息。 为了避免此问题,可以创建一个没有激活和过期日期的默认密钥,作为保障措施。
在 JwtIssuer 技术配置文件中引用密钥时,OpenId Connect 众所周知的配置终结点的密钥终结点 (JWKS URI) 会反映密钥容器中配置的密钥。 使用 OIDC 库的应用程序会自动提取此元数据,以确保它使用正确的密钥来验证令牌。 有关详细信息,请了解如何使用 Microsoft身份验证库,该库始终自动提取最新的令牌签名密钥。
密钥缓存
上传密钥后,密钥上的激活标志默认设置为 false。 然后,可以将此密钥的状态设置为 “已启用”。 如果启用了密钥且有效(当前时间介于 NBF 和 EXP 之间),则使用密钥。
密钥状态
激活标志属性可在 Azure 门户 UX 中修改,允许管理员禁用密钥并将其从轮换中取出。
策略密钥管理
若要获取密钥容器中的当前活动密钥,请使用 Microsoft Graph API getActiveKey 终结点。
若要添加或删除签名和加密密钥,请执行以下作:
- 登录到 Azure 门户。
- 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单切换到你的 Azure AD B2C 租户。
- 在 Azure 门户中,搜索并选择 Azure AD B2C。
- 在概述页上,在 策略下,选择 标识体验框架。
- 选择 策略密钥
- 若要添加新密钥,请选择“ 添加”。
- 若要删除新密钥,请选择该密钥,然后选择“ 删除”。 若要删除密钥,请键入要删除的密钥容器的名称。 Azure AD B2C 删除密钥,并使用后缀.bak创建密钥的副本。
替换密钥
键集中的键不可替换或可移动。 如果需要更改现有密钥:
- 建议添加新密钥,并将 激活日期 设置为当前日期和时间。 Azure AD B2C 激活新密钥并停止使用以前的活动密钥。
- 或者,可以使用正确的键创建新的密钥集。 更新策略以使用新的密钥集,然后删除旧的密钥集。