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

如何通过Graph API预创建共用邮箱的用户以实现密码重置

无需自定义密码重置流的解决方案

我刚好处理过类似的需求,核心思路是绕开signInNames的唯一性限制,利用Graph API可编辑的属性存储共用重置邮箱,再调整默认用户流的配置来使用这个属性。下面是具体步骤:

1. 预创建用户时设置唯一登录名 + 共用重置邮箱

创建用户时,必须保证signInNames里的邮箱唯一(这是Azure AD的硬性要求),但我们可以用otherMails属性来存储共用的密码重置邮箱——这个属性支持添加多个邮箱,而且Graph API完全可以编辑。

示例创建用户的Graph API请求(POST /users):

{
  "accountEnabled": true,
  "displayName": "Stefan Test User 01",
  "mailNickname": "stefantest01",
  "userPrincipalName": "stefantest01@yourtenant.onmicrosoft.com",
  "signInNames": [
    {
      "type": "emailAddress",
      "value": "stefantest01@yourtenant.onmicrosoft.com"
    }
  ],
  "otherMails": ["shared-reset@yourcompany.com"],
  "passwordProfile": {
    "password": "TempResetPass123!",
    "forceChangePasswordNextSignIn": true
  }
}

这里signInNames用唯一的租户内邮箱,otherMails统一设置成你们的共用重置邮箱即可。

2. 调整密码重置用户流,让它用otherMails发重置邮件

默认的密码重置流可能只会用signInNames或MFA联系邮箱,但我们可以修改用户流配置,让它读取otherMails:

  • 打开Azure AD门户,进入外部标识 → 用户流;
  • 选中你的密码重置用户流,进入属性选项卡;
  • 在密码重置区域,把「要使用的属性」改成备用邮箱(这个选项对应的就是otherMails属性)。

这样用户触发密码重置时,系统就会把重置链接发送到otherMails里的共用邮箱,完全符合你的需求。

备选方案:用authenticationMethods配置验证邮箱

如果不想用otherMails,还可以通过Graph API的authenticationMethods端点给用户添加共用的邮箱验证方法,这个方法更偏向于身份验证场景,也能被密码重置流识别:
调用POST /users/{user-id}/authentication/emailMethods,请求体如下:

{
  "emailAddress": "shared-reset@yourcompany.com"
}

然后在用户流的密码重置配置里,选择「已验证的邮箱」作为重置用的属性即可。这个方案的优势是可以明确管理用户的验证方法,避免otherMails被其他场景占用。

关键注意点

  • otherMails可以存多个邮箱,如果你需要同时保留用户个人邮箱和共用重置邮箱,直接添加到数组里就行;
  • 确保共用邮箱能正常接收邮件,并且有对应的流程处理这些重置请求;
  • 这两个方案都不需要开发自定义密码重置流,完全基于Azure AD的原生能力和Graph API实现。

内容的提问来源于stack exchange,提问作者Stefan Bärthel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:53:45