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。 |
group
|
query |
string (array (string)) |
希望图形用户加入的组描述符的逗号分隔列表 |
请求正文
名称 | 类型 | 说明 |
---|---|---|
storageKey |
string (uuid) |
可选:如果提供,我们将使用此标识符作为已创建用户的存储密钥 |
响应
名称 | 类型 | 说明 |
---|---|---|
200 OK |
成功操作 |
安全性
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"
}
定义
名称 | 说明 |
---|---|
Graph |
|
Graph |
请勿尝试使用此类型创建新用户。 请改用其中一个子类。 此类型不包含足够的字段来创建新用户。 |
Reference |
表示 REST 引用链接集合的类。 |
GraphUser
名称 | 类型 | 说明 |
---|---|---|
_links |
此字段包含有关图形主题的零个或多个有趣的链接。 可以调用这些链接以获取有关此图形主题的其他关系或更详细的信息。 |
|
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) |
可选:如果提供,我们将使用此标识符作为已创建用户的存储密钥 |
ReferenceLinks
表示 REST 引用链接集合的类。
名称 | 类型 | 说明 |
---|---|---|
links |
object |
链接的只读视图。 由于引用链接是只读的,因此我们只想将其公开为只读链接。 |