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

如何在Azure B2C内置注册策略中自动用名和姓生成显示名称?

如何在Azure B2C内置用户流中自动生成显示名(无需用户输入)

没问题,在使用内置用户流程的前提下,完全可以实现自动用「名」和「姓」拼接生成显示名,既不用让用户手动输入,也能避免用户名称显示为"Undefined"。核心思路是利用API连接器在注册流程的后端完成字段拼接,具体操作步骤如下:

1. 搭建自定义拼接API服务

你需要准备一个简单的HTTPS API服务(可以用Azure Functions、App Service等轻量服务实现),这个API要接收B2C发送的「名」(givenName)和「姓」(surname)字段,返回拼接好的显示名(displayName)。

API的请求/响应格式要符合B2C要求:

  • B2C发送的请求示例:
{
  "givenName": "John",
  "surname": "Doe",
  "objectId": "<用户临时ID>"
}
  • 你的API需要返回的响应示例:
{
  "displayName": "John Doe"
}

注意:API必须支持HTTPS,同时要配置CORS允许B2C租户域名访问。

2. 在Azure B2C中配置API连接器

  • 登录Azure门户,进入你的B2C租户,找到「用户流」板块,选择要修改的注册用户流。
  • 在用户流左侧菜单中选择「API连接器」,点击「添加API连接器」。
  • 填写API名称、终结点URL,若API需要认证(比如API密钥),在此配置对应的认证方式。
  • 保存配置好的API连接器。

3. 将API连接器绑定到注册流程

  • 进入用户流的「用户属性」设置,移除「显示名称」的输入项(确保用户注册时看不到这个字段)。
  • 切换到「编排步骤」,找到「创建用户」步骤(通常是第5步左右),点击「添加步骤」,选择「调用API」,再选中你刚创建的API连接器。
  • 配置映射规则:将B2C的「名」和「姓」字段映射到API的请求参数;再将API返回的displayName映射到B2C用户的「显示名称」属性。

4. 测试用户流

现在测试注册流程:用户只需输入名、姓及其他必填字段(如邮箱、密码),提交后API连接器会自动完成名+姓的拼接,将结果存入用户的displayName属性中,不会再出现"Undefined"的情况。

补充:批量修复历史用户(如果存在Undefined数据)

如果已经有部分用户的显示名为"Undefined",可以用Microsoft Graph API批量更新:

# PowerShell示例:批量更新用户显示名
Connect-MgGraph -Scopes "User.ReadWrite.All"
$users = Get-MgUser -Filter "displayName eq 'Undefined'" -Select Id, GivenName, Surname
foreach ($user in $users) {
  $newDisplayName = "$($user.GivenName) $($user.Surname)"
  Update-MgUser -UserId $user.Id -DisplayName $newDisplayName
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:48:49