User Entitlements - Add
Добавьте пользователя, назначьте лицензии и расширения и сделайте их членом группы проектов в учетной записи.
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1
Параметры URI
Имя | В | Обязательно | Тип | Описание |
---|---|---|---|---|
organization
|
path | True |
string |
Имя организации Azure DevOps. |
api-version
|
query | True |
string |
Используемая версия API. Для использования этой версии API необходимо задать значение "7.1". |
Текст запроса
Имя | Тип | Описание |
---|---|---|
accessLevel |
Уровень доступа участника, обозначаемый лицензией. |
|
dateCreated |
string (date-time) |
[Readonly] Дата добавления элемента в коллекцию. |
groupAssignments |
[Readonly] GroupEntitlements, к которому принадлежит этот член. |
|
id |
string (uuid) |
Уникальный идентификатор, соответствующий идентификатору удостоверения, связанному с GraphMember. |
lastAccessedDate |
string (date-time) |
[Readonly] Дата последнего доступа к коллекции участнику. |
projectEntitlements |
Отношение между проектом и эффективными разрешениями участника в этом проекте. |
|
user |
Справочник пользователя. |
Ответы
Имя | Тип | Описание |
---|---|---|
200 OK |
успешная операция |
Безопасность
oauth2
Тип:
oauth2
Flow:
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.memberentitlementmanagement_write | Предоставляет возможность управлять пользователями, их лицензиями, а также проектами и расширениями, к которым они могут получить доступ. |
Примеры
Образец запроса
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1
{
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "express"
},
"extensions": [
{
"id": "ms.feed"
}
],
"user": {
"principalName": "newuser@fabrikam.com",
"subjectKind": "user"
},
"projectEntitlements": [
{
"group": {
"groupType": "projectContributor"
},
"projectRef": {
"id": "e5943a98-a842-4001-bd3b-06e756a7dfac"
}
}
]
}
Пример ответа
{
"operationResult": {
"isSuccess": true,
"errors": [],
"userId": "08bbffa9-4944-4a98-b0c0-1fa718d5de3d",
"result": {
"id": "08bbffa9-4944-4a98-b0c0-1fa718d5de3d",
"user": {
"subjectKind": "user",
"domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
"principalName": "newuser@fabrikam.com",
"mailAddress": "newuser@fabrikam.com",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "newuser@fabrikam.com",
"_links": {
"self": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"memberships": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"membershipState": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"storageKey": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
}
},
"url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv",
"descriptor": "aad.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "express",
"msdnLicenseType": "none",
"licenseDisplayName": "Basic",
"status": "pending",
"statusMessage": "",
"assignmentSource": "unknown"
},
"lastAccessedDate": "0001-01-01T08:00:00Z",
"projectEntitlements": [],
"extensions": [],
"groupAssignments": []
}
},
"isSuccess": true,
"userEntitlement": {
"id": "08bbffa9-4944-4a98-b0c0-1fa718d5de3d",
"user": {
"subjectKind": "user",
"domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
"principalName": "newuser@fabrikam.com",
"mailAddress": "newuser@fabrikam.com",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "newuser@fabrikam.com",
"_links": {
"self": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"memberships": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"membershipState": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"storageKey": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
}
},
"url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/bnd.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv",
"descriptor": "aad.dXBuOldpbmRvd3MgTGl2ZSBJRFxicmFuZG9uQGRldmJsYWNrb3BzLmlv"
},
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "express",
"msdnLicenseType": "none",
"licenseDisplayName": "Basic",
"status": "pending",
"statusMessage": "",
"assignmentSource": "unknown"
},
"lastAccessedDate": "0001-01-01T08:00:00Z",
"projectEntitlements": [],
"extensions": [],
"groupAssignments": []
}
}
Определения
Имя | Описание |
---|---|
Access |
Лицензия, назначенная пользователю |
Account |
Тип лицензии учетной записи (например, Express, Заинтересованные лица и т. д.). Чтобы использовать AccountLicenseType, LicensingSource следует определить как учетную запись в тексте запроса. |
Account |
Состояние пользователя в учетной записи |
Assignment |
Источник назначения лицензии (например, группа, неизвестно и т. д. |
Graph |
Сущность группы Graph |
Graph |
|
Group |
Группа проектов (например, участник, читатель и т. д.) |
Group |
Сущность группы с дополнительными свойствами, включая ее лицензию, расширения и членство в проекте |
Group |
Состояние правила группы. |
Group |
Тип группы |
Licensing |
Источник лицензирования (например, учетная запись. MSDN и т. д.) |
Msdn |
Тип лицензии MSDN (например, Visual Studio Professional, Visual Studio Enterprise и т. д.). Чтобы использовать MsdnLicenseType, LicensingSource следует определить как msdn в тексте запроса. |
Project |
Отношение между проектом и эффективными разрешениями пользователя в этом проекте. |
Project |
Указывает, наследует ли пользователь разрешения на проект с помощью членства в группах Azure DevOps или AAD. |
Project |
Ссылка на проект |
Reference |
Класс, представляющий коллекцию ссылок REST. |
Team |
Ссылка на команду |
User |
Сущность пользователя с дополнительными свойствами, включая их лицензию, расширения и членство в проекте |
User |
|
User |
AccessLevel
Лицензия, назначенная пользователю
Имя | Тип | Описание |
---|---|---|
accountLicenseType |
Тип лицензии учетной записи (например, Express, Заинтересованные лица и т. д.). Чтобы использовать AccountLicenseType, LicensingSource следует определить как учетную запись в тексте запроса. |
|
assignmentSource |
Источник назначения лицензии (например, группа, неизвестно и т. д. |
|
licenseDisplayName |
string |
Отображаемое имя лицензии |
licensingSource |
Источник лицензирования (например, учетная запись. MSDN и т. д.) |
|
msdnLicenseType |
Тип лицензии MSDN (например, Visual Studio Professional, Visual Studio Enterprise и т. д.). Чтобы использовать MsdnLicenseType, LicensingSource следует определить как msdn в тексте запроса. |
|
status |
Состояние пользователя в учетной записи |
|
statusMessage |
string |
Сообщение о состоянии. |
AccountLicenseType
Тип лицензии учетной записи (например, Express, Заинтересованные лица и т. д.). Чтобы использовать AccountLicenseType, LicensingSource следует определить как учетную запись в тексте запроса.
Значение | Описание |
---|---|
advanced | |
earlyAdopter | |
express | |
none | |
professional | |
stakeholder |
AccountUserStatus
Состояние пользователя в учетной записи
Значение | Описание |
---|---|
active |
Пользователь выполнил вход по крайней мере один раз в учетную запись VSTS |
deleted |
Пользователь удаляется из учетной записи VSTS администратором учетной записи VSTS. |
disabled |
Пользователь не может войти; в основном используется администратором для временного удаления пользователя из-за отсутствия или перемещении лицензий |
expired |
Пользователь может войти; в первую очередь используется, если срок действия лицензии истек, и мы предоставляем льготный период |
none | |
pending |
Пользователь приглашен присоединиться к учетной записи VSTS администратором учетной записи VSTS, но еще не зарегистрировался или вошел в систему. |
pendingDisabled |
Пользователь отключен; Если они будут повторно активированы, они по-прежнему будут находиться в состоянии ожидания |
AssignmentSource
Источник назначения лицензии (например, группа, неизвестно и т. д.
Значение | Описание |
---|---|
groupRule | |
none | |
unknown |
GraphGroup
Сущность группы Graph
Имя | Тип | Описание |
---|---|---|
_links |
Это поле содержит нулевые или более интересные ссылки на тему графа. Эти ссылки могут вызываться для получения дополнительных связей или более подробных сведений об этой теме графа. |
|
description |
string |
Короткая фраза, помогая человеческим читателям диамбигуировать группы с похожими именами |
descriptor |
string |
Дескриптор является основным способом ссылки на тему графа во время выполнения системы. Это поле однозначно определяет одну и ту же тему графа как в учетных записях, так и в организациях. |
displayName |
string |
Это не уникальное отображаемое имя субъекта графа. Чтобы изменить это поле, необходимо изменить его значение в исходном поставщике. |
domain |
string |
Это имя контейнера источника для элемента графа. (Для MSA это "Windows Live ID", для AD имя домена, для AAD клиента каталога, для VSTS групп ScopeId и т. д.) |
legacyDescriptor |
string |
[Только внутреннее использование] Устаревший дескриптор здесь, если вам нужно получить доступ к старой версии IMS с помощью дескриптора удостоверений. |
mailAddress |
string |
Адрес электронной почты записи для данного элемента графа. Это может отличаться от имени субъекта. |
origin |
string |
Тип поставщика источника для идентификатора источника (например, AD, AAD, MSA) |
originId |
string |
Уникальный идентификатор из системы происхождения. Как правило, идентификатор идентификатора объекта или GUID. Операции связывания и отмены связывания могут привести к изменению этого значения для пользователя, так как пользователь не поддерживается другим поставщиком и имеет другой уникальный идентификатор в новом поставщике. |
principalName |
string |
Это имя субъекта этого элемента графа из исходного поставщика. Исходный поставщик может изменить это поле со временем, и он не гарантирует неизменяемый для жизни элемента графа VSTS. |
subjectKind |
string |
Это поле определяет тип темы графа (например, группу, область, пользователя). |
url |
string |
Этот URL-адрес является полным маршрутом к исходному ресурсу данного субъекта графа. |
GraphUser
Имя | Тип | Описание |
---|---|---|
_links |
Это поле содержит нулевые или более интересные ссылки на тему графа. Эти ссылки могут вызываться для получения дополнительных связей или более подробных сведений об этой теме графа. |
|
descriptor |
string |
Дескриптор является основным способом ссылки на тему графа во время выполнения системы. Это поле однозначно определяет одну и ту же тему графа как в учетных записях, так и в организациях. |
directoryAlias |
string |
Короткое, обычно уникальное имя пользователя в резервном каталоге. Для пользователей AAD это соответствует прозвищу почты, которое часто, но не обязательно похоже на часть почтового адреса пользователя перед знаком @. Для пользователей GitHub это соответствует дескриптору пользователя GitHub. |
displayName |
string |
Это не уникальное отображаемое имя субъекта графа. Чтобы изменить это поле, необходимо изменить его значение в исходном поставщике. |
domain |
string |
Это имя контейнера источника для элемента графа. (Для MSA это "Windows Live ID", для AD имя домена, для AAD клиента каталога, для VSTS групп ScopeId и т. д.) |
isDeletedInOrigin |
boolean |
Если значение true, группа удалена в поставщике удостоверений |
legacyDescriptor |
string |
[Только внутреннее использование] Устаревший дескриптор здесь, если вам нужно получить доступ к старой версии IMS с помощью дескриптора удостоверений. |
mailAddress |
string |
Адрес электронной почты записи для данного элемента графа. Это может отличаться от имени субъекта. |
metaType |
string |
Метатип пользователя в источнике, например "member", "guest" и т. д. Сведения о наборе возможных значений см. в разделе UserMetaType. |
origin |
string |
Тип поставщика источника для идентификатора источника (например, AD, AAD, MSA) |
originId |
string |
Уникальный идентификатор из системы происхождения. Как правило, идентификатор идентификатора объекта или GUID. Операции связывания и отмены связывания могут привести к изменению этого значения для пользователя, так как пользователь не поддерживается другим поставщиком и имеет другой уникальный идентификатор в новом поставщике. |
principalName |
string |
Это имя субъекта этого элемента графа из исходного поставщика. Исходный поставщик может изменить это поле со временем, и он не гарантирует неизменяемый для жизни элемента графа VSTS. |
subjectKind |
string |
Это поле определяет тип темы графа (например, группу, область, пользователя). |
url |
string |
Этот URL-адрес является полным маршрутом к исходному ресурсу данного субъекта графа. |
Group
Группа проектов (например, участник, читатель и т. д.)
Имя | Тип | Описание |
---|---|---|
displayName |
string |
Отображаемое имя группы |
groupType |
Тип группы |
GroupEntitlement
Сущность группы с дополнительными свойствами, включая ее лицензию, расширения и членство в проекте
Имя | Тип | Описание |
---|---|---|
group |
Ссылка на члены. |
|
id |
string (uuid) |
Уникальный идентификатор, соответствующий идентификатору GraphMember. |
lastExecuted |
string (date-time) |
[Readonly] При последнем выполнении правила лицензирования группы (независимо от того, были ли внесены изменения). |
licenseRule |
Правило лицензии. |
|
members |
Участники группы. Используется только при создании новой группы. |
|
projectEntitlements |
Отношение между проектом и эффективными разрешениями участника в этом проекте. |
|
status |
Состояние правила группы. |
GroupLicensingRuleStatus
Состояние правила группы.
Значение | Описание |
---|---|
applied |
Применяется правило |
applyPending |
Правило создается или обновляется, но применение ожидается |
incompatible |
Правило группы было несовместимо |
unableToApply |
Правило не удалось применить неожиданно и должно быть извлечено |
GroupType
Тип группы
Значение | Описание |
---|---|
custom | |
projectAdministrator | |
projectContributor | |
projectReader | |
projectStakeholder |
LicensingSource
Источник лицензирования (например, учетная запись. MSDN и т. д.)
Значение | Описание |
---|---|
account | |
auto | |
msdn | |
none | |
profile | |
trial |
MsdnLicenseType
Тип лицензии MSDN (например, Visual Studio Professional, Visual Studio Enterprise и т. д.). Чтобы использовать MsdnLicenseType, LicensingSource следует определить как msdn в тексте запроса.
Значение | Описание |
---|---|
eligible | |
enterprise | |
none | |
platforms | |
premium | |
professional | |
testProfessional | |
ultimate |
ProjectEntitlement
Отношение между проектом и эффективными разрешениями пользователя в этом проекте.
Имя | Тип | Описание |
---|---|---|
assignmentSource |
Источник назначения (например, группа или неизвестно). |
|
group |
Группа проектов (например, участник, читатель и т. д.) |
|
projectPermissionInherited |
Указывает, наследует ли пользователь разрешения на проект с помощью членства в группах Azure DevOps или AAD. |
|
projectRef |
Ссылка на Project |
|
teamRefs |
Team |
Команда Ref. |
ProjectPermissionInherited
Указывает, наследует ли пользователь разрешения на проект с помощью членства в группах Azure DevOps или AAD.
Значение | Описание |
---|---|
inherited | |
notInherited | |
notSet |
ProjectRef
Ссылка на проект
Имя | Тип | Описание |
---|---|---|
id |
string (uuid) |
Идентификатор проекта. |
name |
string |
Имя проекта. |
ReferenceLinks
Класс, представляющий коллекцию ссылок REST.
Имя | Тип | Описание |
---|---|---|
links |
object |
Режим чтения ссылок. Так как ссылки ссылки доступны только для чтения, мы хотим предоставлять их только как доступные только для чтения. |
TeamRef
Ссылка на команду
Имя | Тип | Описание |
---|---|---|
id |
string (uuid) |
Идентификатор команды |
name |
string |
Имя команды |
UserEntitlement
Сущность пользователя с дополнительными свойствами, включая их лицензию, расширения и членство в проекте
Имя | Тип | Описание |
---|---|---|
accessLevel |
Уровень доступа участника, обозначаемый лицензией. |
|
dateCreated |
string (date-time) |
[Readonly] Дата добавления элемента в коллекцию. |
groupAssignments |
[Readonly] GroupEntitlements, к которому принадлежит этот член. |
|
id |
string (uuid) |
Уникальный идентификатор, соответствующий идентификатору удостоверения, связанному с GraphMember. |
lastAccessedDate |
string (date-time) |
[Readonly] Дата последнего доступа к коллекции участнику. |
projectEntitlements |
Отношение между проектом и эффективными разрешениями участника в этом проекте. |
|
user |
Справочник пользователя. |
UserEntitlementOperationResult
Имя | Тип | Описание |
---|---|---|
errors |
object[] |
Список кодов ошибок, сопряженных с соответствующими сообщениями об ошибках. |
isSuccess |
boolean |
Состояние успешности операции. |
result |
string (T) |
Результирующее свойство права. Дополнительные сведения о конкретных реализациях см. в следующей статье: |
userId |
string (uuid) |
Идентификатор действия члена. |
UserEntitlementsPostResponse
Имя | Тип | Описание |
---|---|---|
isSuccess |
boolean |
Значение true, если все операции были успешными. |
operationResult |
Результат операции. |
|
userEntitlement |
Результат права пользователя после применения операций. |