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": "[email protected]",
"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": "[email protected]",
"mailAddress": "[email protected]",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "[email protected]",
"_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": "[email protected]",
"mailAddress": "[email protected]",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "[email protected]",
"_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 следует определить как учетную запись в тексте запроса.
| Значение | Описание |
|---|---|
| none | |
| earlyAdopter | |
| express | |
| professional | |
| advanced | |
| stakeholder |
AccountUserStatus
Состояние пользователя в учетной записи
| Значение | Описание |
|---|---|
| none | |
| active |
Пользователь выполнил вход по крайней мере один раз в учетную запись VSTS |
| disabled |
Пользователь не может войти; в основном используется администратором для временного удаления пользователя из-за отсутствия или перемещении лицензий |
| deleted |
Пользователь удаляется из учетной записи VSTS администратором учетной записи VSTS. |
| pending |
Пользователь приглашен присоединиться к учетной записи VSTS администратором учетной записи VSTS, но еще не зарегистрировался или вошел в систему. |
| expired |
Пользователь может войти; в первую очередь используется, если срок действия лицензии истек, и мы предоставляем льготный период |
| pendingDisabled |
Пользователь отключен; Если они будут повторно активированы, они по-прежнему будут находиться в состоянии ожидания |
AssignmentSource
Источник назначения лицензии (например, группа, неизвестно и т. д.
| Значение | Описание |
|---|---|
| none | |
| unknown | |
| groupRule |
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
Состояние правила группы.
| Значение | Описание |
|---|---|
| applyPending |
Правило создается или обновляется, но применение ожидается |
| applied |
Применяется правило |
| incompatible |
Правило группы было несовместимо |
| unableToApply |
Правило не удалось применить неожиданно и должно быть извлечено |
GroupType
Тип группы
| Значение | Описание |
|---|---|
| projectStakeholder | |
| projectReader | |
| projectContributor | |
| projectAdministrator | |
| custom |
LicensingSource
Источник лицензирования (например, учетная запись. MSDN и т. д.)
| Значение | Описание |
|---|---|
| none | |
| account | |
| msdn | |
| profile | |
| auto | |
| trial |
MsdnLicenseType
Тип лицензии MSDN (например, Visual Studio Professional, Visual Studio Enterprise и т. д.). Чтобы использовать MsdnLicenseType, LicensingSource следует определить как msdn в тексте запроса.
| Значение | Описание |
|---|---|
| none | |
| eligible | |
| professional | |
| platforms | |
| testProfessional | |
| premium | |
| ultimate | |
| enterprise |
ProjectEntitlement
Отношение между проектом и эффективными разрешениями пользователя в этом проекте.
| Имя | Тип | Описание |
|---|---|---|
| assignmentSource |
Источник назначения (например, группа или неизвестно). |
|
| group |
Группа проектов (например, участник, читатель и т. д.) |
|
| projectPermissionInherited |
Указывает, наследует ли пользователь разрешения на проект с помощью членства в группах Azure DevOps или AAD. |
|
| projectRef |
Ссылка на Project |
|
| teamRefs |
Team |
Команда Ref. |
ProjectPermissionInherited
Указывает, наследует ли пользователь разрешения на проект с помощью членства в группах Azure DevOps или AAD.
| Значение | Описание |
|---|---|
| notSet | |
| notInherited | |
| inherited |
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) |
Результирующее свойство права. Сведения о конкретных реализациях см. также: <seealso cref="T:Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.ServicePrincipalEntitlementOperationResult" /><seealso cref="T:Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi.UserEntitlementOperationResult" /> |
| userId |
string (uuid) |
Идентификатор действия члена. |
UserEntitlementsPostResponse
| Имя | Тип | Описание |
|---|---|---|
| isSuccess |
boolean |
Значение true, если все операции были успешными. |
| operationResult |
Результат операции. |
|
| userEntitlement |
Результат права пользователя после применения операций. |