User Entitlements - Add
Добавьте пользователя, назначьте лицензии и расширения и сделайте его участником группы проектов в учетной записи.
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1-preview.4
Параметры URI
Имя | В | Обязательно | Тип | Описание |
---|---|---|---|---|
organization
|
path | True |
string |
Название организации Azure DevOps. |
api-version
|
query | True |
string |
Используемая версия API. Для использования этой версии API необходимо задать значение 7.1-preview.4. |
Текст запроса
Имя | Тип | Описание |
---|---|---|
accessLevel |
Access |
Уровень доступа участника, обозначаемый лицензией. |
dateCreated |
string |
[Только для чтения] Дата добавления элемента в коллекцию. |
groupAssignments |
Group |
[Только для чтения] GroupEntitlements, к которым принадлежит данный член. |
id |
string |
Уникальный идентификатор, соответствующий идентификатору идентификатора, связанного с GraphMember. |
lastAccessedDate |
string |
[Только для чтения] Дата последнего доступа члена к коллекции. |
projectEntitlements |
Project |
Связь между проектом и действующими разрешениями участника в этом проекте. |
user |
Graph |
Справочник пользователя. |
Ответы
Имя | Тип | Описание |
---|---|---|
200 OK |
User |
успешная операция |
Безопасность
oauth2
Type:
oauth2
Flow:
accessCode
Authorization URL:
https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
Token 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
Scopes
Имя | Описание |
---|---|
vso.memberentitlementmanagement_write | Предоставляет возможность управлять пользователями, их лицензиями, а также проектами и расширениями, к которым они могут получить доступ. |
Примеры
Sample Request
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1-preview.4
{
"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"
}
}
]
}
Sample Response
{
"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 в тексте запроса. |
Account |
Состояние пользователя в учетной записи |
Assignment |
Источник назначения лицензии (например, Group, Unknown и т. д. |
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 |
Account |
Тип лицензии учетной записи (например, Express, заинтересованные лица и т. д.). Чтобы использовать AccountLicenseType, LicensingSource должен быть определен как account в тексте запроса. |
assignmentSource |
Assignment |
Источник назначения лицензии (например, Group, Unknown и т. д. |
licenseDisplayName |
string |
Отображаемое имя лицензии |
licensingSource |
Licensing |
Источник лицензирования (например, учетная запись. MSDN и т. д.) |
msdnLicenseType |
Msdn |
Тип лицензии MSDN (например, Visual Studio Professional, Visual Studio Enterprise и т. д.). Чтобы использовать msdnLicenseType, LicensingSource должен быть определен как msdn в тексте запроса. |
status |
Account |
Состояние пользователя в учетной записи |
statusMessage |
string |
Сообщение о состоянии. |
AccountLicenseType
Тип лицензии учетной записи (например, Express, заинтересованные лица и т. д.). Чтобы использовать AccountLicenseType, LicensingSource должен быть определен как account в тексте запроса.
Имя | Тип | Описание |
---|---|---|
advanced |
string |
|
earlyAdopter |
string |
|
express |
string |
|
none |
string |
|
professional |
string |
|
stakeholder |
string |
AccountUserStatus
Состояние пользователя в учетной записи
Имя | Тип | Описание |
---|---|---|
active |
string |
Пользователь выполнил хотя бы один вход в учетную запись VSTS. |
deleted |
string |
Пользователь удаляется из учетной записи VSTS администратором учетной записи VSTS |
disabled |
string |
Пользователь не может войти в систему; в основном используется администратором для временного удаления пользователя из-за отсутствия или перераспределения лицензий |
expired |
string |
Пользователь может выполнять вход; в основном используется, когда срок действия лицензии истек, и мы предоставляем льготный период |
none |
string |
|
pending |
string |
Пользователь может присоединиться к учетной записи VSTS администратором учетной записи VSTS, но еще не зарегистрировался или не выполнил вход. |
pendingDisabled |
string |
Пользователь отключен; если они повторно вошли, они по-прежнему будут находиться в состоянии Ожидание |
AssignmentSource
Источник назначения лицензии (например, Group, Unknown и т. д.
Имя | Тип | Описание |
---|---|---|
groupRule |
string |
|
none |
string |
|
unknown |
string |
GraphGroup
Сущность группы Graph
Имя | Тип | Описание |
---|---|---|
_links |
Reference |
Это поле содержит ноль или более интересных ссылок на тему графа. Эти ссылки можно вызвать для получения дополнительных связей или более подробных сведений об этой теме графа. |
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 |
Уникальный идентификатор из системы источника. Обычно это идентификатор sid, идентификатор объекта или guid. Операции связывания и отмены связи могут привести к изменению этого значения для пользователя, так как пользователь не поддерживается другим поставщиком и имеет другой уникальный идентификатор в новом поставщике. |
principalName |
string |
Это principalName этого элемента графа от поставщика источника. Поставщик источника может изменить это поле с течением времени, и VSTS не гарантирует, что оно будет неизменяемым в течение срока существования члена графа. |
subjectKind |
string |
Это поле определяет тип субъекта графа (например, "Группа", "Область", "Пользователь"). |
url |
string |
Этот URL-адрес представляет собой полный маршрут к исходному ресурсу этого субъекта графа. |
GraphUser
Имя | Тип | Описание |
---|---|---|
_links |
Reference |
Это поле содержит ноль или более интересных ссылок на тему графа. Эти ссылки можно вызвать для получения дополнительных связей или более подробных сведений об этой теме графа. |
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 |
Уникальный идентификатор из системы источника. Обычно это идентификатор sid, идентификатор объекта или guid. Операции связывания и отмены связи могут привести к изменению этого значения для пользователя, так как пользователь не поддерживается другим поставщиком и имеет другой уникальный идентификатор в новом поставщике. |
principalName |
string |
Это principalName этого элемента графа от поставщика источника. Поставщик источника может изменить это поле с течением времени, и VSTS не гарантирует, что оно будет неизменяемым в течение срока существования члена графа. |
subjectKind |
string |
Это поле определяет тип субъекта графа (например, "Группа", "Область", "Пользователь"). |
url |
string |
Этот URL-адрес представляет собой полный маршрут к исходному ресурсу этого субъекта графа. |
Group
Группа проекта (например, участник, читатель и т. д.)
Имя | Тип | Описание |
---|---|---|
displayName |
string |
Отображаемое имя группы |
groupType |
Group |
Тип группы |
GroupEntitlement
Сущность группы с дополнительными свойствами, включая лицензию, расширения и членство в проекте.
Имя | Тип | Описание |
---|---|---|
group |
Graph |
Ссылка на член. |
id |
string |
Уникальный идентификатор, соответствующий идентификатору GraphMember. |
lastExecuted |
string |
[Только для чтения] Время последнего выполнения правила лицензирования группы (независимо от того, были ли внесены какие-либо изменения). |
licenseRule |
Access |
Правило лицензии. |
members |
User |
Участники группы. Используется только при создании новой группы. |
projectEntitlements |
Project |
Связь между проектом и действующими разрешениями участника в этом проекте. |
status |
Group |
Состояние правила группы. |
GroupLicensingRuleStatus
Состояние правила группы.
Имя | Тип | Описание |
---|---|---|
applied |
string |
Применяется правило |
applyPending |
string |
Правило создается или обновляется, но ожидается применение |
incompatible |
string |
Правило группы было несовместимо |
unableToApply |
string |
Правило не удалось применить неожиданно, и его следует повторить |
GroupType
Тип группы
Имя | Тип | Описание |
---|---|---|
custom |
string |
|
projectAdministrator |
string |
|
projectContributor |
string |
|
projectReader |
string |
|
projectStakeholder |
string |
LicensingSource
Источник лицензирования (например, учетная запись. MSDN и т. д.)
Имя | Тип | Описание |
---|---|---|
account |
string |
|
auto |
string |
|
msdn |
string |
|
none |
string |
|
profile |
string |
|
trial |
string |
MsdnLicenseType
Тип лицензии MSDN (например, Visual Studio Professional, Visual Studio Enterprise и т. д.). Чтобы использовать msdnLicenseType, LicensingSource должен быть определен как msdn в тексте запроса.
Имя | Тип | Описание |
---|---|---|
eligible |
string |
|
enterprise |
string |
|
none |
string |
|
platforms |
string |
|
premium |
string |
|
professional |
string |
|
testProfessional |
string |
|
ultimate |
string |
ProjectEntitlement
Связь между проектом и действующими разрешениями пользователя в этом проекте.
Имя | Тип | Описание |
---|---|---|
assignmentSource |
Assignment |
Источник назначения (например, групповая или неизвестная). |
group |
Группа проектов (например, участник, читатель и т. д.) |
|
projectPermissionInherited |
Project |
Наследует ли пользователь разрешения для проекта через членство в группе Azure DevOps или AAD. |
projectRef |
Project |
Ссылка на project |
teamRefs |
Team |
Ссылка на команду |
ProjectPermissionInherited
Наследует ли пользователь разрешения для проекта через членство в группе Azure DevOps или AAD.
Имя | Тип | Описание |
---|---|---|
inherited |
string |
|
notInherited |
string |
|
notSet |
string |
ProjectRef
Ссылка на проект
Имя | Тип | Описание |
---|---|---|
id |
string |
Идентификатор проекта. |
name |
string |
Имя проекта. |
ReferenceLinks
Класс, представляющий коллекцию ссылок REST.
Имя | Тип | Описание |
---|---|---|
links |
object |
Представление ссылок только для чтения. Так как ссылочные ссылки доступны только для чтения, мы хотим предоставить их только для чтения. |
TeamRef
Ссылка на команду
Имя | Тип | Описание |
---|---|---|
id |
string |
Идентификатор команды |
name |
string |
Имя команды |
UserEntitlement
Сущность пользователя с дополнительными свойствами, включая лицензию, расширения и членство в проекте.
Имя | Тип | Описание |
---|---|---|
accessLevel |
Access |
Уровень доступа участника, обозначаемый лицензией. |
dateCreated |
string |
[Только для чтения] Дата добавления члена в коллекцию. |
groupAssignments |
Group |
[Только для чтения] GroupEntitlements, к которому принадлежит этот элемент. |
id |
string |
Уникальный идентификатор, соответствующий идентификатору идентификатора, связанного с GraphMember. |
lastAccessedDate |
string |
[Только для чтения] Дата последнего доступа участника к коллекции. |
projectEntitlements |
Project |
Связь между проектом и действующими разрешениями участника в этом проекте. |
user |
Graph |
Справочник пользователя. |
UserEntitlementOperationResult
Имя | Тип | Описание |
---|---|---|
errors |
object[] |
Список кодов ошибок, сопряженных с соответствующими сообщениями об ошибках. |
isSuccess |
boolean |
Состояние успешного выполнения операции. |
result |
string |
Результирующее свойство прав. Конкретные реализации см. также в разделе: |
userId |
string |
Идентификатор участника, с которой выполняется действие. |
UserEntitlementsPostResponse
Имя | Тип | Описание |
---|---|---|
isSuccess |
boolean |
Значение true, если все операции были успешными. |
operationResult |
User |
Результат операции. |
userEntitlement |
User |
Результат прав пользователя после применения операций. |