Поделиться через


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

AccessLevel

Уровень доступа участника, обозначаемый лицензией.

dateCreated

string (date-time)

[Readonly] Дата добавления элемента в коллекцию.

groupAssignments

GroupEntitlement[]

[Readonly] GroupEntitlements, к которому принадлежит этот член.

id

string (uuid)

Уникальный идентификатор, соответствующий идентификатору удостоверения, связанному с GraphMember.

lastAccessedDate

string (date-time)

[Readonly] Дата последнего доступа к коллекции участнику.

projectEntitlements

ProjectEntitlement[]

Отношение между проектом и эффективными разрешениями участника в этом проекте.

user

GraphUser

Справочник пользователя.

Ответы

Имя Тип Описание
200 OK

UserEntitlementsPostResponse

успешная операция

Безопасность

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": []
  }
}

Определения

Имя Описание
AccessLevel

Лицензия, назначенная пользователю

AccountLicenseType

Тип лицензии учетной записи (например, Express, Заинтересованные лица и т. д.). Чтобы использовать AccountLicenseType, LicensingSource следует определить как учетную запись в тексте запроса.

AccountUserStatus

Состояние пользователя в учетной записи

AssignmentSource

Источник назначения лицензии (например, группа, неизвестно и т. д.

GraphGroup

Сущность группы Graph

GraphUser
Group

Группа проектов (например, участник, читатель и т. д.)

GroupEntitlement

Сущность группы с дополнительными свойствами, включая ее лицензию, расширения и членство в проекте

GroupLicensingRuleStatus

Состояние правила группы.

GroupType

Тип группы

LicensingSource

Источник лицензирования (например, учетная запись. MSDN и т. д.)

MsdnLicenseType

Тип лицензии MSDN (например, Visual Studio Professional, Visual Studio Enterprise и т. д.). Чтобы использовать MsdnLicenseType, LicensingSource следует определить как msdn в тексте запроса.

ProjectEntitlement

Отношение между проектом и эффективными разрешениями пользователя в этом проекте.

ProjectPermissionInherited

Указывает, наследует ли пользователь разрешения на проект с помощью членства в группах Azure DevOps или AAD.

ProjectRef

Ссылка на проект

ReferenceLinks

Класс, представляющий коллекцию ссылок REST.

TeamRef

Ссылка на команду

UserEntitlement

Сущность пользователя с дополнительными свойствами, включая их лицензию, расширения и членство в проекте

UserEntitlementOperationResult
UserEntitlementsPostResponse

AccessLevel

Лицензия, назначенная пользователю

Имя Тип Описание
accountLicenseType

AccountLicenseType

Тип лицензии учетной записи (например, Express, Заинтересованные лица и т. д.). Чтобы использовать AccountLicenseType, LicensingSource следует определить как учетную запись в тексте запроса.

assignmentSource

AssignmentSource

Источник назначения лицензии (например, группа, неизвестно и т. д.

licenseDisplayName

string

Отображаемое имя лицензии

licensingSource

LicensingSource

Источник лицензирования (например, учетная запись. MSDN и т. д.)

msdnLicenseType

MsdnLicenseType

Тип лицензии MSDN (например, Visual Studio Professional, Visual Studio Enterprise и т. д.). Чтобы использовать MsdnLicenseType, LicensingSource следует определить как msdn в тексте запроса.

status

AccountUserStatus

Состояние пользователя в учетной записи

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

ReferenceLinks

Это поле содержит нулевые или более интересные ссылки на тему графа. Эти ссылки могут вызываться для получения дополнительных связей или более подробных сведений об этой теме графа.

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

ReferenceLinks

Это поле содержит нулевые или более интересные ссылки на тему графа. Эти ссылки могут вызываться для получения дополнительных связей или более подробных сведений об этой теме графа.

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

GroupType

Тип группы

GroupEntitlement

Сущность группы с дополнительными свойствами, включая ее лицензию, расширения и членство в проекте

Имя Тип Описание
group

GraphGroup

Ссылка на члены.

id

string (uuid)

Уникальный идентификатор, соответствующий идентификатору GraphMember.

lastExecuted

string (date-time)

[Readonly] При последнем выполнении правила лицензирования группы (независимо от того, были ли внесены изменения).

licenseRule

AccessLevel

Правило лицензии.

members

UserEntitlement[]

Участники группы. Используется только при создании новой группы.

projectEntitlements

ProjectEntitlement[]

Отношение между проектом и эффективными разрешениями участника в этом проекте.

status

GroupLicensingRuleStatus

Состояние правила группы.

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

AssignmentSource

Источник назначения (например, группа или неизвестно).

group

Group

Группа проектов (например, участник, читатель и т. д.)

projectPermissionInherited

ProjectPermissionInherited

Указывает, наследует ли пользователь разрешения на проект с помощью членства в группах Azure DevOps или AAD.

projectRef

ProjectRef

Ссылка на Project

teamRefs

TeamRef[]

Команда Ref.

ProjectPermissionInherited

Указывает, наследует ли пользователь разрешения на проект с помощью членства в группах Azure DevOps или AAD.

Значение Описание
inherited
notInherited
notSet

ProjectRef

Ссылка на проект

Имя Тип Описание
id

string (uuid)

Идентификатор проекта.

name

string

Имя проекта.

Класс, представляющий коллекцию ссылок REST.

Имя Тип Описание
links

object

Режим чтения ссылок. Так как ссылки ссылки доступны только для чтения, мы хотим предоставлять их только как доступные только для чтения.

TeamRef

Ссылка на команду

Имя Тип Описание
id

string (uuid)

Идентификатор команды

name

string

Имя команды

UserEntitlement

Сущность пользователя с дополнительными свойствами, включая их лицензию, расширения и членство в проекте

Имя Тип Описание
accessLevel

AccessLevel

Уровень доступа участника, обозначаемый лицензией.

dateCreated

string (date-time)

[Readonly] Дата добавления элемента в коллекцию.

groupAssignments

GroupEntitlement[]

[Readonly] GroupEntitlements, к которому принадлежит этот член.

id

string (uuid)

Уникальный идентификатор, соответствующий идентификатору удостоверения, связанному с GraphMember.

lastAccessedDate

string (date-time)

[Readonly] Дата последнего доступа к коллекции участнику.

projectEntitlements

ProjectEntitlement[]

Отношение между проектом и эффективными разрешениями участника в этом проекте.

user

GraphUser

Справочник пользователя.

UserEntitlementOperationResult

Имя Тип Описание
errors

object[]

Список кодов ошибок, сопряженных с соответствующими сообщениями об ошибках.

isSuccess

boolean

Состояние успешности операции.

result

string (T)

Результирующее свойство права. Дополнительные сведения о конкретных реализациях см. в следующей статье:

userId

string (uuid)

Идентификатор действия члена.

UserEntitlementsPostResponse

Имя Тип Описание
isSuccess

boolean

Значение true, если все операции были успешными.

operationResult

UserEntitlementOperationResult

Результат операции.

userEntitlement

UserEntitlement

Результат права пользователя после применения операций.