You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于自定义属性值限制Azure B2C登录访问

Azure B2C联合登录场景下基于自定义租户属性的访问限制解决方案

核心思路

联合登录完成后,先从Azure AD B2C目录读取用户的extension_tenant自定义属性,再执行租户合法性断言验证,无需使用自断言技术配置文件(自断言步骤因无用户输入字段会被引擎跳过)。

具体实现步骤

1. 在编排流程中添加用户属性读取步骤

在联合登录完成后的编排阶段,添加读取用户目录属性的步骤,确保extension_tenant被加载到声明中。示例如下:

<!-- 联合登录成功后,读取用户属性(替换Order为你流程中合适的位置) -->
<OrchestrationStep Order="6" Type="ClaimsExchange">
  <ClaimsExchanges>
    <ClaimsExchange Id="AADUserRead" TechnicalProfileReferenceId="AAD-UserReadUsingAlternativeSecurityId" />
  </ClaimsExchanges>
</OrchestrationStep>

2. 确保用户属性读取技术配置文件返回extension_tenant

修改AAD-UserReadUsingAlternativeSecurityId技术配置文件,添加extension_tenant输出声明:

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <!-- 添加自定义租户属性输出 -->
    <OutputClaim ClaimTypeReferenceId="extension_tenant" />
  </OutputClaims>
</TechnicalProfile>

3. 添加租户验证断言步骤

在读取用户属性后,直接调用你的ClaimsTransformation-AssertAppTenantValidated技术配置文件执行验证:

<!-- 执行租户访问权限验证 -->
<OrchestrationStep Order="7" Type="ClaimsExchange">
  <ClaimsExchanges>
    <ClaimsExchange Id="AssertTenantAccess" TechnicalProfileReferenceId="ClaimsTransformation-AssertAppTenantValidated" />
  </ClaimsExchanges>
</OrchestrationStep>

4. 配置自定义错误提示

通过本地化配置自定义无权限错误消息,让用户在登录页或错误页看到明确提示:

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="zh-CN" MergeBehavior="ReplaceAll">
    <SupportedLanguage>zh-CN</SupportedLanguage>
  </SupportedLanguages>
  <LocalizedResources Id="api.error.zh-CN">
    <LocalizedStrings>
      <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfClaimsTransformationBooleanValueIsNotEqual">你没有访问该租户的权限,请联系管理员。</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

关键说明

你之前使用的自断言技术配置文件未执行,是因为SelfAssertedAttributeProvider需要包含用户需手动输入的声明字段,而你的配置中仅传入objectId(无需用户输入),引擎判定IsSelfAssertedEmpty为True,直接跳过了该步骤。改用直接调用声明转换技术配置文件的方式,即可正常执行租户验证逻辑。

内容的提问来源于stack exchange,提问作者Marin Bënzari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:09:53