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 |
Access |
由许可证表示的成员访问级别。 |
dateCreated |
string |
[Readonly]将成员添加到集合的日期。 |
groupAssignments |
Group |
[Readonly]此成员所属的 GroupEntitlements。 |
id |
string |
与 GraphMember 关联的标识的 ID 匹配的唯一标识符。 |
lastAccessedDate |
string |
[Readonly]成员上次访问集合的日期。 |
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 |
许可证 (的分配来源,例如组、未知等。 |
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 |
许可证 (的分配来源,例如组、未知等。 |
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
许可证 (的分配来源,例如组、未知等。
名称 | 类型 | 说明 |
---|---|---|
groupRule |
string |
|
none |
string |
|
unknown |
string |
GraphGroup
图形组实体
名称 | 类型 | 说明 |
---|---|---|
_links |
Reference |
此字段包含有关图形主题的零个或多个相关链接。 可以调用这些链接来获取有关此图主题的其他关系或更多详细信息。 |
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 |
Reference |
此字段包含有关图形主题的零个或多个相关链接。 可以调用这些链接来获取有关此图主题的其他关系或更多详细信息。 |
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 |
Group |
组类型 |
GroupEntitlement
具有其他属性的组实体,包括其许可证、扩展和项目成员身份
名称 | 类型 | 说明 |
---|---|---|
group |
Graph |
成员引用。 |
id |
string |
与 GraphMember 的 ID 匹配的唯一标识符。 |
lastExecuted |
string |
[Readonly]无论是否) 进行任何更改,上一次执行组许可规则的时间 (。 |
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 |
项目参考 |
teamRefs |
Team |
团队参考 |
ProjectPermissionInherited
用户是通过 Azure DevOps 还是 AAD 组成员身份继承对项目的权限。
名称 | 类型 | 说明 |
---|---|---|
inherited |
string |
|
notInherited |
string |
|
notSet |
string |
ProjectRef
对项目的引用
名称 | 类型 | 说明 |
---|---|---|
id |
string |
项目 ID。 |
name |
string |
项目名称。 |
ReferenceLinks
表示 REST 引用链接集合的类。
名称 | 类型 | 说明 |
---|---|---|
links |
object |
链接的只读视图。 由于引用链接是只读的,因此我们只想将其公开为只读。 |
TeamRef
对团队的引用
名称 | 类型 | 说明 |
---|---|---|
id |
string |
团队 ID |
name |
string |
团队名称 |
UserEntitlement
具有其他属性(包括许可证、扩展和项目成员身份)的用户实体
名称 | 类型 | 说明 |
---|---|---|
accessLevel |
Access |
由许可证表示的成员访问级别。 |
dateCreated |
string |
[Readonly]将成员添加到集合的日期。 |
groupAssignments |
Group |
[Readonly]此成员所属的 GroupEntitlements。 |
id |
string |
与 GraphMember 关联的标识 ID 匹配的唯一标识符。 |
lastAccessedDate |
string |
[Readonly]成员上次访问集合的日期。 |
projectEntitlements |
Project |
项目与成员在该项目中的有效权限之间的关系。 |
user |
Graph |
用户参考。 |
UserEntitlementOperationResult
名称 | 类型 | 说明 |
---|---|---|
errors |
object[] |
与相应的错误消息配对的错误代码列表。 |
isSuccess |
boolean |
操作的成功状态。 |
result |
string |
生成的权利属性。 有关特定实现,另请参阅: |
userId |
string |
正在对其执行操作的成员的标识符。 |
UserEntitlementsPostResponse
名称 | 类型 | 说明 |
---|---|---|
isSuccess |
boolean |
如果所有操作都成功,则其值为 True。 |
operationResult |
User |
操作结果。 |
userEntitlement |
User |
应用操作后的用户权利的结果。 |