Important
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
注释
在 Azure Active Directory B2C 中,自定义策略 主要用于解决复杂场景。 对于大多数场景,我们建议您使用内置的用户流。 如果未这样做,请通过 Active Directory B2C 中的自定义策略入门来了解自定义策略初学者包。
Microsoft Entra 条件访问是 Azure AD B2C 用来统合信号、做出决策以及强制执行组织策略的工具。
Protocol
“Protocol”元素的“Name”属性必须设置为 。 处理程序属性必须包含 Azure AD B2C 使用的协议处理程序程序集的完全限定名称:
Web.TPEngine.Providers.ConditionalAccessProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
以下示例显示了条件访问技术配置文件:
<TechnicalProfile Id="ConditionalAccessEvaluation">
<DisplayName>Conditional Access Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ConditionalAccessProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="OperationType">Evaluation</Item>
</Metadata>
条件访问评估
对于每个登录,Azure AD B2C 会评估所有策略,并确保在授予用户访问权限之前满足所有要求。 “阻止访问”将替代所有其他配置设置。 条件访问技术配置文件的评估模式在使用本地帐户登录期间评估Azure AD B2C 收集的信号。 条件访问技术配置文件的结果是一组来自条件访问评估的声明。 Azure AD B2C 策略在下一个业务流程步骤中使用这些声明执行操作,例如阻止用户或使用多重身份验证对用户提出质询。 可以为该模式配置以下选项。
Metadata
| Attribute | 必需 | Description |
|---|---|---|
| 操作类型 | 是的 | 必须是 评估。 |
输入声明
InputClaims 元素包含要发送到条件访问的声明列表。 还可以将声明的名称映射到条件访问技术配置文件中定义的名称。
| ClaimReferenceId | 必需 | 数据类型 | Description |
|---|---|---|---|
| UserId | 是的 | 字符串 | 登录的用户的标识符。 |
| 使用的身份验证方法 | 是的 | stringCollection | 用户用于登录的方法列表。 可能的值: Password和 OneTimePasscode。 |
| IsFederated | 是的 | boolean | 指示用户是否使用联合帐户登录。 值必须是 false。 |
| IsMfaRegistered | 是的 | boolean | 指示用户是否已注册多重身份验证方法。 如果值设置为 false,条件访问策略评估将返回一个 block 质询(如果需要操作)。 |
InputClaimsTransformations 元素可能包含 InputClaimsTransformation 元素的集合,这些元素用于修改输入声明或生成新元素,然后再将它们发送到条件访问服务。
输出声明
OutputClaims 元素包含 ConditionalAccessProtocolProvider 生成的声明列表。 还可以将声明的名称映射到下面定义的名称。
| ClaimReferenceId | 必需 | 数据类型 | Description |
|---|---|---|---|
| Challenges | 是的 | stringCollection | 用于修正已识别威胁的操作列表。 可能的值: block 、 mfa和 chg_pwd。 |
| MultiConditionalAccessStatus | 是的 | stringCollection | 条件访问评估的状态。 |
OutputClaimsTransformations 元素可能包含用于修改输出声明或生成新输出声明的 OutputClaimsTransformation 元素集合。
示例:评估
以下示例展示了用于评估登录威胁的条件访问技术配置文件。
<TechnicalProfile Id="ConditionalAccessEvaluation">
<DisplayName>Conditional Access Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ConditionalAccessProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="OperationType">Evaluation</Item>
</Metadata>
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="IsMfaRegisteredCT" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="UserId" />
<InputClaim ClaimTypeReferenceId="AuthenticationMethodsUsed" />
<InputClaim ClaimTypeReferenceId="IsFederated" DefaultValue="false" />
<InputClaim ClaimTypeReferenceId="IsMfaRegistered" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="conditionalAccessClaimCollection" PartnerClaimType="Challenges" />
<OutputClaim ClaimTypeReferenceId="ConditionalAccessStatus" PartnerClaimType="MultiConditionalAccessStatus" />
</OutputClaims>
</TechnicalProfile>
Remediation
条件访问技术配置文件的修正模式通知Azure AD B2C 已修复登录标识的威胁。 可以为修正模式配置以下选项。
Metadata
| Attribute | 必需 | Description |
|---|---|---|
| 操作类型 | 是的 | 必须是 修正。 |
输入声明
InputClaims 元素包含要发送到条件访问的声明列表。 还可以将声明的名称映射到条件访问技术配置文件中定义的名称。
| ClaimReferenceId | 必需 | 数据类型 | Description |
|---|---|---|---|
| ChallengesSatisfied | 是的 | stringCollection | 满足的挑战列表,用于修正已识别的威胁作为评估模式的返回,质询声明。 |
InputClaimsTransformations 元素可能包含 InputClaimsTransformation 元素的集合,这些元素用于在调用条件访问服务之前修改输入声明或生成新元素。
输出声明
条件访问协议提供程序不返回任何 OutputClaims,因此无需指定输出声明。 但是,只要设置属性,就可以包含条件访问协议提供程序不返回的 DefaultValue 声明。
OutputClaimsTransformations 元素可能包含用于修改输出声明或生成新输出声明的 OutputClaimsTransformation 元素集合。
示例:修正
以下示例显示了一个条件访问技术配置文件,用于修正登录威胁。
<TechnicalProfile Id="ConditionalAccessRemediation">
<DisplayName>Conditional Access Remediation</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ConditionalAccessProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<Metadata>
<Item Key="OperationType">Remediation</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="conditionalAccessClaimCollection" PartnerClaimType="ChallengesSatisfied" />
</InputClaims>
</TechnicalProfile>