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 版本。 这应设置为“7.1-preview.4”才能使用此版本的 API。

请求正文

名称 类型 说明
accessLevel

AccessLevel

由许可证表示的成员访问级别。

dateCreated

string

[Readonly]将成员添加到集合的日期。

groupAssignments

GroupEntitlement[]

[Readonly]此成员所属的 GroupEntitlements。

id

string

与 GraphMember 关联的标识的 ID 匹配的唯一标识符。

lastAccessedDate

string

[Readonly]成员上次访问集合的日期。

projectEntitlements

ProjectEntitlement[]

项目与成员在该项目中的有效权限之间的关系。

user

GraphUser

用户引用。

响应

名称 类型 说明
200 OK

UserEntitlementsPostResponse

成功的操作

安全性

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

定义

名称 说明
AccessLevel

分配给用户的许可证

AccountLicenseType

帐户许可证 (类型,例如 Express、利益干系人等 ) 。 若要使用 AccountLicenseType,应在请求正文中将 LicensingSource 定义为“account”。

AccountUserStatus

帐户中的用户状态

AssignmentSource

许可证 (的分配来源,例如组、未知等。

GraphGroup

图形组实体

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 定义为“account”。

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 定义为“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

许可证 (的分配来源,例如组、未知等。

名称 类型 说明
groupRule

string

none

string

unknown

string

GraphGroup

图形组实体

名称 类型 说明
_links

ReferenceLinks

此字段包含有关图形主题的零个或多个相关链接。 可以调用这些链接来获取有关此图主题的其他关系或更多详细信息。

description

string

帮助人类读者消除具有相似名称的群体的简短短语

descriptor

string

描述符是在系统运行时引用图形主题的主要方式。 此字段将唯一标识帐户和组织中的同一图形主题。

displayName

string

这是图形主题的非唯一显示名称。 若要更改此字段,必须在源提供程序中更改其值。

domain

string

这表示图形成员的源容器的名称。 (对于 MSA,这是“Windows Live ID”,对于 AD 为域名称,对于 AAD 为目录的 tenantID,对于 VSTS 组,为 ScopeId 等)

legacyDescriptor

string

[仅限内部使用]如果需要使用标识描述符访问旧版本的 IMS,请在此处使用旧描述符。

mailAddress

string

给定图形成员的记录的电子邮件地址。 这可能不同于主体名称。

origin

string

源标识符的源提供程序类型 (例如:AD、AAD、MSA)

originId

string

源系统中的唯一标识符。 通常为 sid、对象 ID 或 Guid。 链接和取消链接操作可能会导致用户更改此值,因为该用户不受其他提供程序的支持,并且新提供程序中具有不同的唯一 ID。

principalName

string

这是源提供程序中此图成员的 PrincipalName。 源提供程序可能会随时间推移更改此字段,但 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 为目录的 tenantID,对于 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 是此图主题的源资源的完整路由。

Group

项目组 (例如参与者、读者等 )

名称 类型 说明
displayName

string

组的显示名称

groupType

GroupType

组类型

GroupEntitlement

具有其他属性的组实体,包括其许可证、扩展和项目成员身份

名称 类型 说明
group

GraphGroup

成员引用。

id

string

与 GraphMember 的 ID 匹配的唯一标识符。

lastExecuted

string

[Readonly]无论是否) 进行任何更改,上一次执行组许可规则的时间 (。

licenseRule

AccessLevel

许可证规则。

members

UserEntitlement[]

组成员。 仅在创建新组时使用。

projectEntitlements

ProjectEntitlement[]

项目与成员在该项目中的有效权限之间的关系。

status

GroupLicensingRuleStatus

组规则的状态。

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

AssignmentSource

分配源 (例如组或未知) 。

group

Group

项目组 (例如参与者、读者等 )

projectPermissionInherited

ProjectPermissionInherited

用户是通过 Azure DevOps 还是 AAD 组成员身份继承对项目的权限。

projectRef

ProjectRef

项目参考

teamRefs

TeamRef[]

团队参考

ProjectPermissionInherited

用户是通过 Azure DevOps 还是 AAD 组成员身份继承对项目的权限。

名称 类型 说明
inherited

string

notInherited

string

notSet

string

ProjectRef

对项目的引用

名称 类型 说明
id

string

项目 ID。

name

string

项目名称。

表示 REST 引用链接集合的类。

名称 类型 说明
links

object

链接的只读视图。 由于引用链接是只读的,因此我们只想将其公开为只读。

TeamRef

对团队的引用

名称 类型 说明
id

string

团队 ID

name

string

团队名称

UserEntitlement

具有其他属性(包括许可证、扩展和项目成员身份)的用户实体

名称 类型 说明
accessLevel

AccessLevel

由许可证表示的成员访问级别。

dateCreated

string

[Readonly]将成员添加到集合的日期。

groupAssignments

GroupEntitlement[]

[Readonly]此成员所属的 GroupEntitlements。

id

string

与 GraphMember 关联的标识 ID 匹配的唯一标识符。

lastAccessedDate

string

[Readonly]成员上次访问集合的日期。

projectEntitlements

ProjectEntitlement[]

项目与成员在该项目中的有效权限之间的关系。

user

GraphUser

用户参考。

UserEntitlementOperationResult

名称 类型 说明
errors

object[]

与相应的错误消息配对的错误代码列表。

isSuccess

boolean

操作的成功状态。

result

string

生成的权利属性。 有关特定实现,另请参阅:

userId

string

正在对其执行操作的成员的标识符。

UserEntitlementsPostResponse

名称 类型 说明
isSuccess

boolean

如果所有操作都成功,则其值为 True。

operationResult

UserEntitlementOperationResult

操作结果。

userEntitlement

UserEntitlement

应用操作后的用户权利的结果。