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

Azure AD B2C:如何在自定义模板中重新排序身份提供商(IDP)?

在Azure AD B2C中自定义身份提供商(IDP)显示顺序的解决方案

Azure AD B2C的内置Classic/AzureBlue模板会固定社交IDP的显示位置(Classic顶置,AzureBlue置底),直接修改策略内的IDP声明顺序不会生效,要实现自定义排序,只能通过自定义UI模板来控制,具体步骤如下:

1. 导出基础模板

从Azure门户导出当前使用的模板作为修改基础:

  • 进入Azure AD B2C > 用户流 > 选择目标用户流 > 自定义UI > 下载模板
  • 选择对应页面(比如登录页面)的模板文件,下载到本地。

2. 调整IDP渲染逻辑

打开下载的HTML模板,找到负责渲染身份提供商列表的代码块(通常在data-name="IdpSelection"的容器内),修改循环渲染的顺序:

  • 默认模板会将社交IDP和本地账号分区渲染,你可以调整两者的渲染顺序,或者根据IDP的id/name属性自定义排序规则。
  • 示例代码(将社交IDP放在本地账号之前):
<div id="api" data-name="IdpSelection">
  <!-- 先渲染所有社交身份提供商 -->
  {% for idp in socialIdps %}
    <div class="form-group">
      <button type="submit" id="{{idp.id}}" name="idp" value="{{idp.id}}" class="btn btn-block btn-social {{idp.id}}">
        <span class="icon"></span> {{idp.name}}
      </button>
    </div>
  {% endfor %}

  <!-- 再渲染本地账号登录区域 -->
  {% if localAccountEnabled %}
    <div class="divider">
      <hr><span>或使用本地账号登录</span>
    </div>
    <!-- 本地账号表单代码 -->
    <div class="form-group">
      <input type="email" id="signInName" name="signInName" placeholder="邮箱地址" class="form-control" required autofocus>
    </div>
    <!-- 其他本地账号相关表单元素 -->
  {% endif %}
</div>

3. 上传并关联自定义模板

  • 将修改后的模板文件上传到Azure存储账户(确保容器设置为公共访问),或者直接在门户的自定义UI设置中上传文件。
  • 回到用户流的自定义UI配置页面,将对应页面的模板URL设置为你上传的自定义模板地址。
  • 保存用户流后,测试登录页面,验证IDP顺序是否符合预期。

注意事项

  • 确保模板中的Liquid语法与你的策略版本兼容,避免语法错误导致页面加载失败。
  • 若使用自定义策略,需在对应的技术配置文件(如SelfAsserted-LocalAccountSignin-Email)中通过ContentDefinition引用自定义UI。
  • 测试前清空浏览器缓存,避免加载旧模板内容。

内容的提问来源于stack exchange,提问作者rubeonline

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 08:47:08