在 Azure Active Directory B2C 自定义策略中定义条件访问技术配置文件

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>