创建用户

命名空间:microsoft.graph

创建新用户。请求正文包含要创建的用户。至少要为该用户指定必需的属性。可以选择指定其他任意可写属性。

备注

若要创建外部用户,请使用邀请 API

权限

要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) User.ReadWrite.All、Directory.ReadWrite.All
委派(个人 Microsoft 帐户) 不支持。
应用程序 User.ReadWrite.All、Directory.ReadWrite.All

HTTP 请求

POST /users

请求标头

标头
Authorization Bearer {token}。必需。
Content-Type application/json

请求正文

在请求正文中,提供 user 对象的 JSON 表示形式。

下表列出了创建用户时所需的属性。 如果要为正在创建的用户包括 identities 属性,并非所有列出的属性都是必需的。 对于 B2C 本地帐户标识,只需要 passwordProfile,且 passwordPolicies 必须设置为 DisablePasswordExpiration。 对于社交标识,则无需任何属性。

参数 类型 说明
accountEnabled boolean 启用此帐户时为 true,否则为 false。
displayName string 要在用户的通讯簿中显示的名称。
onPremisesImmutableId string 如果你对用户的 userPrincipalName (UPN) 属性使用联盟域,只需在创建新用户帐户时指定。
mailNickname string 用户的邮件别名。
passwordProfile PasswordProfile 用户的密码配置文件。对于 Azure B2C 租户,forceChangePasswordNextSignIn 属性应设置为 false,并且应在第一次登录时使用自定义策略强制重置密码。
userPrincipalName string 用户主体名称 (someuser@contoso.com)。它是用户基于 Internet 标准 RFC 822 的 Internet 式登录名。按照惯例,此名称应映射到用户的电子邮件名称。常规格式是 alias@domain,其中,domain 必须位于租户的已验证域集合中。创建用户时此属性是必需的。可从 组织verifiedDomains 属性访问租户的已验证域。
注意:此属性不能包含突出字符。 仅支持使用以下字符:A - Za - z0 - 9 ' . - _ ! # ^ ~。 有关允许字符的完整列表,请参阅用户名策略

由于 用户 资源支持 扩展,因此可以使用 POST 操作,并在创建用户实例时向其添加含有自己的数据的自定义属性。

备注

默认情况下,使用此 API 创建的联合用户将被强制每 12 小时登录一次。 有关如何对其进行更改的详细信息,请参阅令牌生存期的例外

响应

如果成功,此方法在响应正文中返回 201 Created 响应代码和 user 对象。

示例

示例 1:创建用户

请求

下面是一个请求示例。

POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "accountEnabled": true,
  "displayName": "Adele Vance",
  "mailNickname": "AdeleV",
  "userPrincipalName": "AdeleV@contoso.onmicrosoft.com",
  "passwordProfile" : {
    "forceChangePasswordNextSignIn": true,
    "password": "xWwvJ]6NMw+bWH-d"
  }
}

在请求正文中,提供 user 对象的 JSON 表示形式。

响应

这是一个示例响应。注意:为提高可读性,可能缩短了此处显示的响应对象。

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
    "businessPhones": [],
    "displayName": "Adele Vance",
    "givenName": "Adele",
    "jobTitle": "Product Marketing Manager",
    "mail": "AdeleV@contoso.onmicrosoft.com",
    "mobilePhone": "+1 425 555 0109",
    "officeLocation": "18/2111",
    "preferredLanguage": "en-US",
    "surname": "Vance",
    "userPrincipalName": "AdeleV@contoso.onmicrosoft.com"
}

示例 2:创建具有社交和本地帐户标识的用户

创建一个新用户,该用户具有本地帐户标识(以登录名和电子邮件地址为登录凭据),并且具有社交标识。 此示例通常用于 B2C 租户中的迁移方案。

备注

对于本地帐户标识,必须禁用密码过期,并且还必须禁用下次登录时强制更改密码。

请求

POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "displayName": "John Smith",
  "identities": [
    {
      "signInType": "userName",
      "issuer": "contoso.onmicrosoft.com",
      "issuerAssignedId": "johnsmith"
    },
    {
      "signInType": "emailAddress",
      "issuer": "contoso.onmicrosoft.com",
      "issuerAssignedId": "jsmith@yahoo.com"
    },
    {
      "signInType": "federated",
      "issuer": "facebook.com",
      "issuerAssignedId": "5eecb0cd"
    }
  ],
  "passwordProfile" : {
    "password": "password-value",
    "forceChangePasswordNextSignIn": false
  },
  "passwordPolicies": "DisablePasswordExpiration"
}

响应

下面是一个响应示例。

注意: 为了提高可读性,可能缩短了此处显示的响应对象。

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
  "displayName": "John Smith",
  "id": "4c7be08b-361f-41a8-b1ef-1712f7a3dfb2",
  "identities": [
    {
      "signInType": "userName",
      "issuer": "contoso.onmicrosoft.com",
      "issuerAssignedId": "johnsmith"
    },
    {
      "signInType": "emailAddress",
      "issuer": "contoso.onmicrosoft.com",
      "issuerAssignedId": "jsmith@yahoo.com"
    },
    {
      "signInType": "federated",
      "issuer": "facebook.com",
      "issuerAssignedId": "5eecb0cd"
    }
  ],
  "passwordPolicies": "DisablePasswordExpiration"
}

另请参阅