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

请求正文

名称 类型 说明
accessLevel

AccessLevel

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

dateCreated

string (date-time)

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

groupAssignments

GroupEntitlement[]

[Readonly]此成员所属的 GroupEntitlements。

id

string (uuid)

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

lastAccessedDate

string (date-time)

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

projectEntitlements

ProjectEntitlement[]

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

user

GraphUser

用户参考。

响应

名称 类型 说明
200 OK

UserEntitlementsPostResponse

成功作

安全性

oauth2

类型: oauth2
流向: 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 定义为“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
earlyAdopter
express
none
professional
stakeholder

AccountUserStatus

帐户中的用户状态

说明
active

用户至少登录到 VSTS 帐户一次

deleted

用户已由 VSTS 帐户管理员从 VSTS 帐户中删除

disabled

用户无法登录;主要用于管理员因缺少或许可证重新分配而暂时删除用户

expired

用户可以登录;主要用于许可证处于过期状态,我们给予宽限期

none
pending

用户被 VSTS 帐户管理员邀请加入 VSTS 帐户,但尚未注册/登录

pendingDisabled

用户已禁用;如果重新启用,它们仍将处于挂起状态

AssignmentSource

许可证的分配源(例如组、未知等)

说明
groupRule
none
unknown

GraphGroup

图形组实体

名称 类型 说明
_links

ReferenceLinks

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

description

string

帮助人类读者消除类似名称的组的简短短语

descriptor

string

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

displayName

string

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

domain

string

这表示图形成员的源容器的名称。 (对于 MSA,这是“Windows Live ID”,对于 AD 域名、目录的租户 ID、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 域名、目录的租户 ID、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 (uuid)

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

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 Ref

teamRefs

TeamRef[]

团队参考

ProjectPermissionInherited

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

说明
inherited
notInherited
notSet

ProjectRef

对项目的引用

名称 类型 说明
id

string (uuid)

项目 ID。

name

string

项目名称。

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

名称 类型 说明
links

object

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

TeamRef

对团队的引用

名称 类型 说明
id

string (uuid)

团队 ID

name

string

团队名称

UserEntitlement

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

名称 类型 说明
accessLevel

AccessLevel

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

dateCreated

string (date-time)

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

groupAssignments

GroupEntitlement[]

[Readonly]此成员所属的 GroupEntitlements。

id

string (uuid)

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

lastAccessedDate

string (date-time)

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

projectEntitlements

ProjectEntitlement[]

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

user

GraphUser

用户参考。

UserEntitlementOperationResult

名称 类型 说明
errors

object[]

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

isSuccess

boolean

作的成功状态。

result

string (T)

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

userId

string (uuid)

要对其执行的成员的标识符。

UserEntitlementsPostResponse

名称 类型 说明
isSuccess

boolean

如此 如果所有作都成功。

operationResult

UserEntitlementOperationResult

作结果。

userEntitlement

UserEntitlement

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