Users - Create

将现有 AAD 或 MSA 用户具体化到 ADO 帐户中。

注意:除非在创建时显式为其分配了父组,或者已通过 AAD 组成员身份自动登录并自动授权,否则创建的用户不会在帐户中处于活动状态。

需要将用户添加到帐户,然后才能将用户添加到 ADO 组或分配资产。

请求正文必须是 GraphUserCreationContext 的派生类型:

  • GraphUserMailAddressCreationContext - 使用邮件地址作为从外部 AD 或 AAD 支持的提供程序引用现有用户的引用创建新用户。
  • GraphUserOriginIdCreationContext - 使用 OriginID 作为对外部 AD 或 AAD 支持的提供程序的现有用户的引用创建新用户。
  • GraphUserPrincipalNameCreationContext - 使用主体名称创建一个新用户,作为从外部 AD 或 AAD 支持的提供程序引用现有用户的引用。

如果要添加的用户对应于以前删除的用户,则将还原该用户。

(可选)可以将新创建的用户添加为现有 ADO 组的成员和/或为用户指定自定义存储密钥。

POST https://vssps.dev.azure.com/{organization}/_apis/graph/users?api-version=7.1-preview.1
POST https://vssps.dev.azure.com/{organization}/_apis/graph/users?groupDescriptors={groupDescriptors}&api-version=7.1-preview.1

URI 参数

名称 必需 类型 说明
organization
path True

string

Azure DevOps 组织的名称。

api-version
query True

string

要使用的 API 版本。 这应设置为“7.1-preview.1”才能使用此版本的 API。

groupDescriptors
query

string (array (string))

希望图形用户加入的组描述符的逗号分隔列表

请求正文

名称 类型 说明
storageKey

string (uuid)

可选:如果提供,我们将使用此标识符作为已创建用户的存储密钥

响应

名称 类型 说明
200 OK

GraphUser

成功操作

安全性

oauth2

类型: oauth2
流向: accessCode
授权 URL: https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
令牌 URL: https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer

作用域

名称 说明
vso.graph_manage 授予读取用户、组、范围和组成员身份信息以及添加用户、组和管理组成员身份的功能

示例

Add a MSA user by UPN
Add an AAD user as member of a group
Add an AAD user by OID
Add an AAD user by UPN
Add an AAD user with a custom storage key

Add a MSA user by UPN

示例请求

POST https://vssps.dev.azure.com/{organization}/_apis/graph/users?api-version=7.1-preview.1

{
  "principalName": "fabrikamfiber4@hotmail.com"
}

示例响应

location: https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.YWZkMzM2ZGQtZTgwYy03MWViLThlYmQtODMzNjMxYmEwNWM2
{
  "subjectKind": "user",
  "metaType": "guest",
  "domain": "45aa3d2d-7442-473d-b4d3-3c670da9dd96",
  "principalName": "fabrikamfiber4@hotmail.com",
  "mailAddress": "fabrikamfiber4@hotmail.com",
  "origin": "aad",
  "originId": "ddddb7d1-2de3-4bab-98b6-ddcc994e964d",
  "displayName": "Jamal Hartnett",
  "_links": {
    "self": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.YWZkMzM2ZGQtZTgwYy03MWViLThlYmQtODMzNjMxYmEwNWM2"
    },
    "memberships": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Memberships/aad.YWZkMzM2ZGQtZTgwYy03MWViLThlYmQtODMzNjMxYmEwNWM2"
    },
    "membershipState": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/MembershipStates/aad.YWZkMzM2ZGQtZTgwYy03MWViLThlYmQtODMzNjMxYmEwNWM2"
    },
    "storageKey": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/StorageKeys/aad.YWZkMzM2ZGQtZTgwYy03MWViLThlYmQtODMzNjMxYmEwNWM2"
    },
    "avatar": {
      "href": "https://dev.azure.com/Fabrikam/_apis/GraphProfile/MemberAvatars/aad.YWZkMzM2ZGQtZTgwYy03MWViLThlYmQtODMzNjMxYmEwNWM2"
    }
  },
  "url": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.YWZkMzM2ZGQtZTgwYy03MWViLThlYmQtODMzNjMxYmEwNWM2",
  "descriptor": "aad.YWZkMzM2ZGQtZTgwYy03MWViLThlYmQtODMzNjMxYmEwNWM2"
}

Add an AAD user as member of a group

示例请求

POST https://vssps.dev.azure.com/{organization}/_apis/graph/users?groupDescriptors=vssgp.Uy0xLTktMTU1MTM3NDI0NS0yMTc2MDU2ODQ4LTMyODAwNzczODUtMjM4NDQzMDA4Mi0yNTc3Njk3NTA4LTEtMTYxOTEwNzUyMi0xMDQzNDcxMTc2LTIzNjk4NjYzNDMtMzAyODQ0OTA&api-version=7.1-preview.1

{
  "principalName": "jtseng@vscsi.us"
}

示例响应

location: https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4
{
  "subjectKind": "user",
  "domain": "45aa3d2d-7442-473d-b4d3-3c670da9dd96",
  "principalName": "jtseng@vscsi.us",
  "mailAddress": "jtseng@vscsi.us",
  "origin": "aad",
  "originId": "55c8c7b6-7ace-43bc-918f-304dfa2b6317",
  "displayName": "Jia-hao Tseng",
  "_links": {
    "self": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    },
    "memberships": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Memberships/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    },
    "membershipState": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/MembershipStates/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    },
    "storageKey": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/StorageKeys/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    },
    "avatar": {
      "href": "https://dev.azure.com/Fabrikam/_apis/GraphProfile/MemberAvatars/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    }
  },
  "url": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4",
  "descriptor": "aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
}

Add an AAD user by OID

示例请求

POST https://vssps.dev.azure.com/{organization}/_apis/graph/users?api-version=7.1-preview.1

{
  "originId": "e97b0e7f-0a61-41ad-860c-748ec5fcb20b"
}

示例响应

location: https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.NjJhOWYxYmQtNmEwOS03NjQyLTkzYTAtMDFkMTVmZDQ2NDk4
{
  "subjectKind": "user",
  "domain": "45aa3d2d-7442-473d-b4d3-3c670da9dd96",
  "principalName": "CPotra@vscsi.us",
  "mailAddress": "CPotra@vscsi.us",
  "origin": "aad",
  "originId": "e97b0e7f-0a61-41ad-860c-748ec5fcb20b",
  "displayName": "Cristina Potra",
  "_links": {
    "self": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.NjJhOWYxYmQtNmEwOS03NjQyLTkzYTAtMDFkMTVmZDQ2NDk4"
    },
    "memberships": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Memberships/aad.NjJhOWYxYmQtNmEwOS03NjQyLTkzYTAtMDFkMTVmZDQ2NDk4"
    },
    "membershipState": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/MembershipStates/aad.NjJhOWYxYmQtNmEwOS03NjQyLTkzYTAtMDFkMTVmZDQ2NDk4"
    },
    "storageKey": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/StorageKeys/aad.NjJhOWYxYmQtNmEwOS03NjQyLTkzYTAtMDFkMTVmZDQ2NDk4"
    },
    "avatar": {
      "href": "https://dev.azure.com/Fabrikam/_apis/GraphProfile/MemberAvatars/aad.NjJhOWYxYmQtNmEwOS03NjQyLTkzYTAtMDFkMTVmZDQ2NDk4"
    }
  },
  "url": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.NjJhOWYxYmQtNmEwOS03NjQyLTkzYTAtMDFkMTVmZDQ2NDk4",
  "descriptor": "aad.NjJhOWYxYmQtNmEwOS03NjQyLTkzYTAtMDFkMTVmZDQ2NDk4"
}

Add an AAD user by UPN

示例请求

POST https://vssps.dev.azure.com/{organization}/_apis/graph/users?api-version=7.1-preview.1

{
  "principalName": "jtseng@vscsi.us"
}

示例响应

location: https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4
{
  "subjectKind": "user",
  "domain": "45aa3d2d-7442-473d-b4d3-3c670da9dd96",
  "principalName": "jtseng@vscsi.us",
  "mailAddress": "jtseng@vscsi.us",
  "origin": "aad",
  "originId": "55c8c7b6-7ace-43bc-918f-304dfa2b6317",
  "displayName": "Jia-hao Tseng",
  "_links": {
    "self": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    },
    "memberships": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Memberships/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    },
    "membershipState": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/MembershipStates/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    },
    "storageKey": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/StorageKeys/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    },
    "avatar": {
      "href": "https://dev.azure.com/Fabrikam/_apis/GraphProfile/MemberAvatars/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
    }
  },
  "url": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4",
  "descriptor": "aad.MDA0NzBlMzQtZGE2MS03YTY5LWJkOTYtNDg3YTg0OWVjNTU4"
}

Add an AAD user with a custom storage key

示例请求

POST https://vssps.dev.azure.com/{organization}/_apis/graph/users?api-version=7.1-preview.1

{
  "originId": "27dbfced-5593-4756-98a3-913c39af7612",
  "storageKey": "9b71f216-4c4f-6b74-a911-efb0fa9c777f"
}

示例响应

location: https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.OWI3MWYyMTYtNGM0Zi03Yjc0LWE5MTEtZWZiMGZhOWM3Nzdm
{
  "subjectKind": "user",
  "domain": "45aa3d2d-7442-473d-b4d3-3c670da9dd96",
  "principalName": "JMcleod@vscsi.us",
  "mailAddress": "JMcleod@vscsi.us",
  "origin": "aad",
  "originId": "27dbfced-5593-4756-98a3-913c39af7612",
  "displayName": "Johnnie McLeod",
  "_links": {
    "self": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.OWI3MWYyMTYtNGM0Zi03Yjc0LWE5MTEtZWZiMGZhOWM3Nzdm"
    },
    "memberships": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Memberships/aad.OWI3MWYyMTYtNGM0Zi03Yjc0LWE5MTEtZWZiMGZhOWM3Nzdm"
    },
    "membershipState": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/MembershipStates/aad.OWI3MWYyMTYtNGM0Zi03Yjc0LWE5MTEtZWZiMGZhOWM3Nzdm"
    },
    "storageKey": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/StorageKeys/aad.OWI3MWYyMTYtNGM0Zi03Yjc0LWE5MTEtZWZiMGZhOWM3Nzdm"
    },
    "avatar": {
      "href": "https://dev.azure.com/Fabrikam/_apis/GraphProfile/MemberAvatars/aad.OWI3MWYyMTYtNGM0Zi03Yjc0LWE5MTEtZWZiMGZhOWM3Nzdm"
    }
  },
  "url": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Users/aad.OWI3MWYyMTYtNGM0Zi03Yjc0LWE5MTEtZWZiMGZhOWM3Nzdm",
  "descriptor": "aad.OWI3MWYyMTYtNGM0Zi03Yjc0LWE5MTEtZWZiMGZhOWM3Nzdm"
}

定义

名称 说明
GraphUser
GraphUserCreationContext

请勿尝试使用此类型创建新用户。 请改用其中一个子类。 此类型不包含足够的字段来创建新用户。

ReferenceLinks

表示 REST 引用链接集合的类。

GraphUser

名称 类型 说明
_links

ReferenceLinks

此字段包含有关图形主题的零个或多个有趣的链接。 可以调用这些链接以获取有关此图形主题的其他关系或更详细的信息。

descriptor

string

描述符是在系统运行时引用图形主题的主要方法。 此字段将唯一标识帐户和组织中的同一图形主题。

directoryAlias

string

后盾目录中用户通常唯一的短名称。 对于 AAD 用户,这对应于邮件昵称,这通常但不一定类似于 @ 签名前用户电子邮件地址的一部分。 对于 GitHub 用户,这对应于 GitHub 用户句柄。

displayName

string

这是图形主题的非唯一显示名称。 若要更改此字段,必须在源提供程序中更改其值。

domain

string

这表示图形成员的源容器的名称。 (对于 MSA,这是“Windows Live ID”,对于 AD 域名、目录的租户 ID、VSTS 组 ScopeId 等)

isDeletedInOrigin

boolean

如果为 true,则已在标识提供者中删除该组

legacyDescriptor

string

[仅限内部使用]如果需要使用标识描述符访问旧版 IMS,则此处提供了旧描述符。

mailAddress

string

给定图形成员的记录的电子邮件地址。 这可能不同于主体名称。

metaType

string

源中用户的元类型,例如“member”、“guest”等。有关可能值集,请参阅 UserMetaType。

origin

string

源标识符的源提供程序类型(例如:AD、AAD、MSA)

originId

string

源系统的唯一标识符。 通常为 sid、对象 ID 或 Guid。 链接和取消链接操作可能会导致用户更改此值,因为该用户不受其他提供程序的支持,并且新提供程序中具有不同的唯一 ID。

principalName

string

这是源提供程序中此图形成员的 PrincipalName。 源提供程序可能会随时间推移更改此字段,并且不保证 VSTS 的图形成员的生存期不可变。

subjectKind

string

此字段标识图形主题的类型(例如:组、范围、用户)。

url

string

此 URL 是指向此图形主题的源资源的完整路由。

GraphUserCreationContext

请勿尝试使用此类型创建新用户。 请改用其中一个子类。 此类型不包含足够的字段来创建新用户。

名称 类型 说明
storageKey

string (uuid)

可选:如果提供,我们将使用此标识符作为已创建用户的存储密钥

表示 REST 引用链接集合的类。

名称 类型 说明
links

object

链接的只读视图。 由于引用链接是只读的,因此我们只想将其公开为只读链接。