User Entitlements - Add
新增使用者、指派授權和延伸模組,並將其設為帳戶中專案群組的成員。
POST https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1-preview.4
URI 參數
名稱 | 位於 | 必要 | 類型 | Description |
---|---|---|---|---|
organization
|
path | True |
string |
Azure DevOps 組織的名稱。 |
api-version
|
query | True |
string |
要使用的 API 版本。 這應該設定為 『7.1-preview.4』,以使用此版本的 API。 |
要求本文
名稱 | 類型 | Description |
---|---|---|
accessLevel |
Access |
由授權表示的成員存取層級。 |
dateCreated |
string |
[Readonly]成員加入至集合的日期。 |
groupAssignments |
Group |
[Readonly]此成員所屬的 GroupEntitlements。 |
id |
string |
符合與 GraphMember 相關聯之 Identity 標識碼的唯一標識碼。 |
lastAccessedDate |
string |
[Readonly]上次存取集合的成員日期。 |
projectEntitlements |
Project |
專案與該專案中成員的有效許可權之間的關聯性。 |
user |
Graph |
用戶參考。 |
回應
名稱 | 類型 | Description |
---|---|---|
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
名稱 | Description |
---|---|
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": []
}
}
定義
名稱 | Description |
---|---|
Access |
指派給用戶的授權 |
Account |
帳戶授權類型 (例如 Express、項目關係人等 ) 。 若要使用 AccountLicenseType,LicensingSource 應該在要求本文中定義為 'account'。 |
Account |
帳戶中的用戶狀態 |
Assignment |
授權指派來源 (例如群組、未知等。 |
Graph |
圖形群組實體 |
Graph |
|
Group |
專案群組 (例如參與者、讀者等 ) |
Group |
具有其他屬性的群組實體,包括其授權、延伸模組和專案成員資格 |
Group |
群組規則的狀態。 |
Group |
群組類型 |
Licensing |
授權來源 (例如帳戶。MSDN etc.) |
Msdn |
MSDN 授權類型 (,例如 Visual Studio Professional、Visual Studio Enterprise 等。) 。 若要使用 MsdnLicenseType,LicensingSource 應該在要求本文中定義為 'msdn'。 |
Project |
專案與使用者在該專案中的有效許可權之間的關聯性。 |
Project |
使用者是否透過 Azure DevOps 或 AAD 群組成員資格繼承項目的許可權。 |
Project |
項目的參考 |
Reference |
表示 REST 參考連結集合的類別。 |
Team |
小組的參考 |
User |
具有其他屬性的用戶實體,包括其授權、延伸模組和專案成員資格 |
User |
|
User |
AccessLevel
指派給用戶的授權
名稱 | 類型 | Description |
---|---|---|
accountLicenseType |
Account |
帳戶授權類型 (例如 Express、項目關係人等 ) 。 若要使用 AccountLicenseType,LicensingSource 應該在要求本文中定義為 'account'。 |
assignmentSource |
Assignment |
授權指派來源 (例如群組、未知等。 |
licenseDisplayName |
string |
授權的顯示名稱 |
licensingSource |
Licensing |
授權來源 (例如帳戶。MSDN etc.) |
msdnLicenseType |
Msdn |
MSDN 授權類型 (,例如 Visual Studio Professional、Visual Studio Enterprise 等。) 。 若要使用 MsdnLicenseType,LicensingSource 應該在要求本文中定義為 'msdn'。 |
status |
Account |
帳戶中的用戶狀態 |
statusMessage |
string |
狀態消息。 |
AccountLicenseType
帳戶授權類型 (例如 Express、項目關係人等 ) 。 若要使用 AccountLicenseType,LicensingSource 應該在要求本文中定義為 'account'。
名稱 | 類型 | Description |
---|---|---|
advanced |
string |
|
earlyAdopter |
string |
|
express |
string |
|
none |
string |
|
professional |
string |
|
stakeholder |
string |
AccountUserStatus
帳戶中的用戶狀態
名稱 | 類型 | Description |
---|---|---|
active |
string |
使用者至少登入 VSTS 帳戶一次 |
deleted |
string |
使用者已由 VSTS 帳戶管理員從 VSTS 帳戶中移除 |
disabled |
string |
用戶無法登入;主要由系統管理員用來暫時移除使用者,因為缺少或授權重新配置 |
expired |
string |
用戶可以登入;主要用於授權處於過期狀態,並提供寬限期 |
none |
string |
|
pending |
string |
使用者被 VSTS 帳戶管理員邀請加入 VSTS 帳戶,但尚未註冊/登入 |
pendingDisabled |
string |
使用者已停用;如果重新啟用,它們仍會處於擱置狀態 |
AssignmentSource
授權指派來源 (例如群組、未知等。
名稱 | 類型 | Description |
---|---|---|
groupRule |
string |
|
none |
string |
|
unknown |
string |
GraphGroup
圖形群組實體
名稱 | 類型 | Description |
---|---|---|
_links |
Reference |
此欄位包含圖表主旨的相關零或更多有趣連結。 您可以叫用這些連結來取得其他關聯性,或取得此圖表主體的詳細資訊。 |
description |
string |
一個簡短片語,可協助人類讀者釐清類似名稱的群組 |
descriptor |
string |
描述項是在系統執行時參考圖形主旨的主要方式。 此欄位可唯一識別帳戶和組織之間的相同圖表主旨。 |
displayName |
string |
這是圖形主體的非唯一顯示名稱。 若要變更此欄位,您必須變更來源提供者中的值。 |
domain |
string |
這代表圖形成員的來源容器名稱。 (對於 MSA 而言,這是“Windows Live ID”,針對 AD 的名稱、針對目錄的 tenantID、VSTS 群組 ScopeId 等) |
legacyDescriptor |
string |
[僅限內部使用]若要使用身分識別描述元來存取舊版 IMS,則舊版描述元位於此處。 |
mailAddress |
string |
指定圖表成員的記錄電子郵件位址。 這可能與主體名稱不同。 |
origin |
string |
來源標識碼的來源提供者類型 (例如:AD、AAD、MSA) |
originId |
string |
來源系統的唯一標識碼。 通常是 sid、物件識別碼或 Guid。 連結和取消連結作業可能會導致使用者的這個值變更,因為使用者不是由不同的提供者支援,而且在新提供者中具有不同的唯一標識符。 |
principalName |
string |
這是來源提供者中這個圖形成員的 PrincipalName。 來源提供者可能會隨著時間變更此字段,且不保證 VSTS 在圖形成員的存留期間不可變。 |
subjectKind |
string |
此欄位會識別圖形主旨的類型 (例如:群組、範圍、使用者) 。 |
url |
string |
此 URL 是此圖形主體來源資源的完整路由。 |
GraphUser
名稱 | 類型 | Description |
---|---|---|
_links |
Reference |
此欄位包含圖表主旨的相關零或更多有趣連結。 您可以叫用這些連結來取得其他關聯性,或取得此圖表主體的詳細資訊。 |
descriptor |
string |
描述項是在系統執行時參考圖形主旨的主要方式。 此欄位可唯一識別帳戶和組織之間的相同圖表主旨。 |
directoryAlias |
string |
簡短且通常是支援目錄中使用者的唯一名稱。 對於 AAD 使用者,這會對應至郵件暱稱,這通常與使用者的郵件位址部分類似 @sign 之前。 針對 GitHub 使用者,這會對應至 GitHub 使用者句柄。 |
displayName |
string |
這是圖形主體的非唯一顯示名稱。 若要變更此欄位,您必須變更來源提供者中的值。 |
domain |
string |
這代表圖形成員的來源容器名稱。 (對於 MSA 而言,這是“Windows Live ID”,針對 AD 的名稱、針對目錄的 tenantID、VSTS 群組 ScopeId 等) |
isDeletedInOrigin |
boolean |
當為 true 時,已在識別提供者中刪除群組 |
legacyDescriptor |
string |
[僅限內部使用]若要使用身分識別描述元來存取舊版 IMS,則舊版描述元位於此處。 |
mailAddress |
string |
指定圖表成員的記錄電子郵件位址。 這可能與主體名稱不同。 |
metaType |
string |
來源中使用者的中繼類型,例如 「member」、“guest” 等。如需一組可能的值,請參閱 UserMetaType。 |
origin |
string |
來源標識碼的來源提供者類型 (例如:AD、AAD、MSA) |
originId |
string |
來源系統的唯一標識碼。 通常是 sid、物件識別碼或 Guid。 連結和取消連結作業可能會導致使用者的這個值變更,因為使用者不是由不同的提供者支援,而且在新提供者中具有不同的唯一標識符。 |
principalName |
string |
這是來源提供者中這個圖形成員的 PrincipalName。 來源提供者可能會隨著時間變更此字段,且不保證 VSTS 在圖形成員的存留期間不可變。 |
subjectKind |
string |
此欄位會識別圖形主旨的類型 (例如:群組、範圍、使用者) 。 |
url |
string |
此 URL 是此圖形主體來源資源的完整路由。 |
Group
專案群組 (例如參與者、讀者等 )
名稱 | 類型 | Description |
---|---|---|
displayName |
string |
群組的顯示名稱 |
groupType |
Group |
群組類型 |
GroupEntitlement
具有其他屬性的群組實體,包括其授權、延伸模組和專案成員資格
名稱 | 類型 | Description |
---|---|---|
group |
Graph |
成員參考。 |
id |
string |
符合 GraphMember 識別碼的唯一標識碼。 |
lastExecuted |
string |
[Readonly]不論是否已) 進行任何變更,上次執行群組授權規則的時間都會 (。 |
licenseRule |
Access |
授權規則。 |
members |
User |
群組成員。 只有在建立新群組時才會使用。 |
projectEntitlements |
Project |
專案與該專案中成員的有效許可權之間的關聯性。 |
status |
Group |
群組規則的狀態。 |
GroupLicensingRuleStatus
群組規則的狀態。
名稱 | 類型 | Description |
---|---|---|
applied |
string |
套用規則 |
applyPending |
string |
規則已建立或更新,但套用擱置中 |
incompatible |
string |
群組規則不相容 |
unableToApply |
string |
規則無法意外套用,應重試 |
GroupType
群組類型
名稱 | 類型 | Description |
---|---|---|
custom |
string |
|
projectAdministrator |
string |
|
projectContributor |
string |
|
projectReader |
string |
|
projectStakeholder |
string |
LicensingSource
授權來源 (例如帳戶。MSDN etc.)
名稱 | 類型 | Description |
---|---|---|
account |
string |
|
auto |
string |
|
msdn |
string |
|
none |
string |
|
profile |
string |
|
trial |
string |
MsdnLicenseType
MSDN 授權類型 (,例如 Visual Studio Professional、Visual Studio Enterprise 等。) 。 若要使用 MsdnLicenseType,LicensingSource 應該在要求本文中定義為 'msdn'。
名稱 | 類型 | Description |
---|---|---|
eligible |
string |
|
enterprise |
string |
|
none |
string |
|
platforms |
string |
|
premium |
string |
|
professional |
string |
|
testProfessional |
string |
|
ultimate |
string |
ProjectEntitlement
專案與使用者在該專案中的有效許可權之間的關聯性。
名稱 | 類型 | Description |
---|---|---|
assignmentSource |
Assignment |
指派來源 (例如群組或未知) 。 |
group |
專案群組 (例如參與者、讀者等 ) |
|
projectPermissionInherited |
Project |
使用者是否透過 Azure DevOps 或 AAD 群組成員資格繼承項目的許可權。 |
projectRef |
Project |
Project Ref |
teamRefs |
Team |
Team Ref. |
ProjectPermissionInherited
使用者是否透過 Azure DevOps 或 AAD 群組成員資格繼承項目的許可權。
名稱 | 類型 | Description |
---|---|---|
inherited |
string |
|
notInherited |
string |
|
notSet |
string |
ProjectRef
項目的參考
名稱 | 類型 | Description |
---|---|---|
id |
string |
專案識別碼。 |
name |
string |
專案名稱。 |
ReferenceLinks
表示 REST 參考連結集合的類別。
名稱 | 類型 | Description |
---|---|---|
links |
object |
連結的只讀檢視。 因為參考連結是只讀的,所以我們只想要將它們公開為只讀。 |
TeamRef
小組的參考
名稱 | 類型 | Description |
---|---|---|
id |
string |
小組標識碼 |
name |
string |
小組名稱 |
UserEntitlement
具有其他屬性的用戶實體,包括其授權、延伸模組和專案成員資格
名稱 | 類型 | Description |
---|---|---|
accessLevel |
Access |
成員的存取層級由授權表示。 |
dateCreated |
string |
[Readonly]成員加入至集合的日期。 |
groupAssignments |
Group |
[Readonly]此成員所屬的 GroupEntitlements。 |
id |
string |
符合與 GraphMember 相關聯之身分識別標識碼的唯一標識碼。 |
lastAccessedDate |
string |
[Readonly]上次存取集合的成員日期。 |
projectEntitlements |
Project |
專案與該專案中成員的有效許可權之間的關聯性。 |
user |
Graph |
用戶參考。 |
UserEntitlementOperationResult
名稱 | 類型 | Description |
---|---|---|
errors |
object[] |
與對應錯誤訊息配對的錯誤碼清單。 |
isSuccess |
boolean |
作業的成功狀態。 |
result |
string |
產生的權利屬性。 如需特定實作,請參閱: |
userId |
string |
正在處理之成員的標識碼。 |
UserEntitlementsPostResponse
名稱 | 類型 | Description |
---|---|---|
isSuccess |
boolean |
如果所有作業都成功,則為 True。 |
operationResult |
User |
作業結果。 |
userEntitlement |
User |
套用作業之後的用戶權利結果。 |