共用方式為


Service Principal Entitlements - Update Service Principal Entitlement

編輯服務主體 (授權、延伸模組、專案、Teams 等) 的權利。

PATCH https://vsaex.dev.azure.com/{organization}/_apis/serviceprincipalentitlements/{servicePrincipalId}?api-version=7.1-preview.1

URI 參數

名稱 位於 必要 類型 Description
organization
path True

string

Azure DevOps 組織的名稱。

servicePrincipalId
path True

string

uuid

服務主體的識別碼。

api-version
query True

string

要使用的 API 版本。 這應該設定為 '7.1-preview.1' 以使用此版本的 API。

要求本文

Media Types: "application/json-patch+json"

名稱 類型 Description
from

string

移動/複製作業要從中複製的路徑。

op

Operation

修補作業

path

string

作業的路徑。 在陣列的案例中,可以使用以零起始的索引來指定陣列中的位置 (例如 /#0/name) 。 您可以使用 「-」 字元,而不是在陣列結尾插入的索引, (例如 / (/-) 。

value

object

作業的值。 這是基本類型或 JToken。

回應

名稱 類型 Description
200 OK

ServicePrincipalEntitlementsPatchResponse

成功的作業

安全性

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

PATCH https://vsaex.dev.azure.com/{organization}/_apis/serviceprincipalentitlements/593F6716-627C-6CCB-833E-77A7F9CA422F?api-version=7.1-preview.1

[
  {
    "from": "",
    "op": "replace",
    "path": "/accessLevel",
    "value": {
      "accountLicenseType": "express",
      "licensingSource": "account"
    }
  },
  {
    "from": "",
    "op": "add",
    "path": "/projectEntitlements/6fa35aad-6755-4dd7-8c69-e13f702af0f9",
    "value": {
      "group": {
        "groupType": "projectAdministrator"
      },
      "projectRef": {
        "id": "6fa35aad-6755-4dd7-8c69-e13f702af0f9"
      }
    }
  },
  {
    "from": "",
    "op": "remove",
    "path": "/projectEntitlements/fca61097-56a1-464f-85ba-1b126cf02cd1",
    "value": ""
  }
]

Sample Response

{
  "operationResults": [
    {
      "servicePrincipalId": "ed82811a-0890-6f7f-813e-69dd9ebd5ba3",
      "isSuccess": true,
      "errors": [],
      "result": {
        "servicePrincipal": {
          "subjectKind": "servicePrincipal",
          "applicationId": "d1a24244-f6cc-488b-bca7-42eb10f13c5b",
          "metaType": "application",
          "directoryAlias": "00ed1ce5-4257-4bbd-946e-1b57718e203e",
          "domain": "faab4a73-0db3-4a5e-8e8a-02188f1d3f4b",
          "principalName": "00ed1ce5-4257-4bbd-946e-1b57718e203e",
          "mailAddress": null,
          "origin": "aad",
          "originId": "00ed1ce5-4257-4bbd-946e-1b57718e203e",
          "displayName": "Service principal",
          "_links": {
            "self": {
              "href": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/ServicePrincipals/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
            },
            "memberships": {
              "href": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/Memberships/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
            },
            "membershipState": {
              "href": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/MembershipStates/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
            },
            "storageKey": {
              "href": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/StorageKeys/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
            },
            "avatar": {
              "href": "https://dev.azure.com/fabrikam/_apis/GraphProfile/MemberAvatars/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
            }
          },
          "url": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/ServicePrincipals/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz",
          "descriptor": "aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
        },
        "id": "ed82811a-0890-6f7f-813e-69dd9ebd5ba3",
        "accessLevel": {
          "licensingSource": "account",
          "accountLicenseType": "earlyAdopter",
          "msdnLicenseType": "none",
          "licenseDisplayName": "Early Adopter",
          "status": "pending",
          "statusMessage": "",
          "assignmentSource": "unknown"
        },
        "lastAccessedDate": "0001-01-01T00:00:00",
        "dateCreated": "0001-01-01T00:00:00",
        "projectEntitlements": null,
        "groupAssignments": null
      }
    },
    {
      "servicePrincipalId": "ed82811a-0890-6f7f-813e-69dd9ebd5ba3",
      "isSuccess": true,
      "errors": [],
      "result": null
    },
    {
      "servicePrincipalId": "ed82811a-0890-6f7f-813e-69dd9ebd5ba3",
      "isSuccess": true,
      "errors": [],
      "result": null
    }
  ],
  "isSuccess": true,
  "servicePrincipalEntitlement": {
    "servicePrincipal": {
      "subjectKind": "servicePrincipal",
      "applicationId": "d1a24244-f6cc-488b-bca7-42eb10f13c5b",
      "metaType": "application",
      "directoryAlias": "00ed1ce5-4257-4bbd-946e-1b57718e203e",
      "domain": "faab4a73-0db3-4a5e-8e8a-02188f1d3f4b",
      "principalName": "00ed1ce5-4257-4bbd-946e-1b57718e203e",
      "mailAddress": null,
      "origin": "aad",
      "originId": "00ed1ce5-4257-4bbd-946e-1b57718e203e",
      "displayName": "Service principal",
      "_links": {
        "self": {
          "href": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/ServicePrincipals/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
        },
        "memberships": {
          "href": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/Memberships/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
        },
        "membershipState": {
          "href": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/MembershipStates/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
        },
        "storageKey": {
          "href": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/StorageKeys/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
        },
        "avatar": {
          "href": "https://dev.azure.com/fabrikam/_apis/GraphProfile/MemberAvatars/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
        }
      },
      "url": "https://vssps.dev.azure.com/fabrikam/_apis/Graph/ServicePrincipals/aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz",
      "descriptor": "aadsp.ZWQ4MjgxMWEtMDg5MC03ZjdmLTgxM2UtNjlkZDllYmQ1YmEz"
    },
    "id": "ed82811a-0890-6f7f-813e-69dd9ebd5ba3",
    "accessLevel": {
      "licensingSource": "account",
      "accountLicenseType": "earlyAdopter",
      "msdnLicenseType": "none",
      "licenseDisplayName": "Early Adopter",
      "status": "pending",
      "statusMessage": "",
      "assignmentSource": "unknown"
    },
    "lastAccessedDate": "0001-01-01T00:00:00Z",
    "dateCreated": "2023-02-08T11:20:12.3155446Z",
    "projectEntitlements": [
      {
        "projectRef": {
          "id": "6fa35aad-6755-4dd7-8c69-e13f702af0f9",
          "name": "TestProject2"
        },
        "group": {
          "groupType": "projectAdministrator",
          "displayName": "Project Administrators"
        },
        "projectPermissionInherited": "notInherited",
        "teamRefs": [],
        "assignmentSource": "unknown"
      }
    ],
    "groupAssignments": []
  }
}

定義

名稱 Description
AccessLevel

指派給使用者的授權

AccountLicenseType

帳戶授權 (類型,例如 Express、專案關係人等) 。 若要使用 AccountLicenseType,LicensingSource 應該在要求本文中定義為 'account'。

AccountUserStatus

帳戶中的使用者狀態

AssignmentSource

授權 (指派來源,例如群組、未知等。

GraphGroup

圖表群組實體

GraphServicePrincipal
GraphUser
Group

專案群組 (例如參與者、讀者等)

GroupEntitlement

具有其他屬性的群組實體,包括其授權、延伸模組和專案成員資格

GroupLicensingRuleStatus

群組規則的狀態。

GroupType

群組類型

JsonPatchDocument

JSON 修補作業的 JSON 模型

LicensingSource

授權來源 (例如帳戶。MSDN etc.)

MsdnLicenseType

MSDN 授權 (類型,例如Visual Studio Professional、Visual Studio Enterprise等) 。 若要使用 MsdnLicenseType,LicensingSource 應該在要求本文中定義為 'msdn'。

Operation

修補作業

ProjectEntitlement

專案與使用者在該專案中的有效許可權之間的關聯性。

ProjectPermissionInherited

使用者是否透過 Azure DevOps 或 AAD 群組成員資格繼承專案的許可權。

ProjectRef

專案的參考

ReferenceLinks

表示 REST 參考連結集合的類別。

ServicePrincipalEntitlement
ServicePrincipalEntitlementOperationResult
ServicePrincipalEntitlementsPatchResponse
TeamRef

小組的參考

UserEntitlement

具有其他屬性的使用者實體,包括其授權、延伸模組和專案成員資格

AccessLevel

指派給使用者的授權

名稱 類型 Description
accountLicenseType

AccountLicenseType

帳戶授權 (類型,例如 Express、專案關係人等) 。 若要使用 AccountLicenseType,LicensingSource 應該在要求本文中定義為 'account'。

assignmentSource

AssignmentSource

授權 (指派來源,例如群組、未知等。

licenseDisplayName

string

授權的顯示名稱

licensingSource

LicensingSource

授權來源 (例如帳戶。MSDN etc.)

msdnLicenseType

MsdnLicenseType

MSDN 授權 (類型,例如Visual Studio Professional、Visual Studio Enterprise等) 。 若要使用 MsdnLicenseType,LicensingSource 應該在要求本文中定義為 'msdn'。

status

AccountUserStatus

帳戶中的使用者狀態

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

ReferenceLinks

此欄位包含有關圖表主旨的零個或多個有趣連結。 您可以叫用這些連結來取得其他關聯性,或取得此圖表主體的詳細資訊。

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 是此圖表主體來源資源的完整路由。

GraphServicePrincipal

名稱 類型 Description
_links

ReferenceLinks

此欄位包含有關圖表主旨的零個或多個有趣連結。 您可以叫用這些連結來取得其他關聯性,或取得此圖表主體的詳細資訊。

applicationId

string

descriptor

string

描述項是在系統執行時參考圖形主旨的主要方式。 此欄位可唯一識別帳戶和組織之間的相同圖表主旨。

directoryAlias

string

支援目錄中使用者的簡短、一般唯一名稱。 對於 AAD 使用者,這會對應至郵件昵稱,這通常但不一定類似于 @ 符號之前使用者郵寄地址的一部分。 對於 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 是此圖表主體來源資源的完整路由。

GraphUser

名稱 類型 Description
_links

ReferenceLinks

此欄位包含有關圖表主旨的零個或多個有趣連結。 您可以叫用這些連結來取得其他關聯性,或取得此圖表主體的詳細資訊。

descriptor

string

描述項是在系統執行時參考圖形主旨的主要方式。 此欄位可唯一識別帳戶和組織之間的相同圖表主旨。

directoryAlias

string

支援目錄中使用者的簡短、一般唯一名稱。 對於 AAD 使用者,這會對應至郵件昵稱,這通常但不一定類似于 @ 符號之前使用者郵寄地址的一部分。 對於 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

GroupType

群組類型

GroupEntitlement

具有其他屬性的群組實體,包括其授權、延伸模組和專案成員資格

名稱 類型 Description
group

GraphGroup

成員參考。

id

string

符合 GraphMember 識別碼的唯一識別碼。

lastExecuted

string

[Readonly]不論是否) 進行任何變更,上次執行群組授權規則的時間都會 (。

licenseRule

AccessLevel

授權規則。

members

UserEntitlement[]

群組成員。 只有在建立新群組時才會使用。

projectEntitlements

ProjectEntitlement[]

專案與該專案中成員的有效許可權之間的關聯性。

status

GroupLicensingRuleStatus

群組規則的狀態。

GroupLicensingRuleStatus

群組規則的狀態。

名稱 類型 Description
applied

string

套用規則

applyPending

string

規則已建立或更新,但套用擱置中

incompatible

string

群組規則不相容

unableToApply

string

規則無法意外套用,應重試

GroupType

群組類型

名稱 類型 Description
custom

string

projectAdministrator

string

projectContributor

string

projectReader

string

projectStakeholder

string

JsonPatchDocument

JSON 修補作業的 JSON 模型

名稱 類型 Description
from

string

移動/複製作業要從中複製的路徑。

op

Operation

修補作業

path

string

作業的路徑。 在陣列的案例中,可以使用以零起始的索引來指定陣列中的位置 (例如 /#0/name) 。 您可以使用 「-」 字元,而不是在陣列結尾插入的索引, (例如 / (/-) 。

value

object

作業的值。 這是基本類型或 JToken。

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

Operation

修補作業

名稱 類型 Description
add

string

copy

string

move

string

remove

string

replace

string

test

string

ProjectEntitlement

專案與使用者在該專案中的有效許可權之間的關聯性。

名稱 類型 Description
assignmentSource

AssignmentSource

指派來源 (例如群組或未知) 。

group

Group

專案群組 (例如參與者、讀者等)

projectPermissionInherited

ProjectPermissionInherited

使用者是否透過 Azure DevOps 或 AAD 群組成員資格繼承專案的許可權。

projectRef

ProjectRef

專案參考

teamRefs

TeamRef[]

小組參考。

ProjectPermissionInherited

使用者是否透過 Azure DevOps 或 AAD 群組成員資格繼承專案的許可權。

名稱 類型 Description
inherited

string

notInherited

string

notSet

string

ProjectRef

專案的參考

名稱 類型 Description
id

string

專案識別碼。

name

string

專案名稱。

表示 REST 參考連結集合的類別。

名稱 類型 Description
links

object

連結的唯讀檢視。 因為參考連結是唯讀的,所以我們只想要將它們公開為唯讀。

ServicePrincipalEntitlement

名稱 類型 Description
accessLevel

AccessLevel

由授權表示的成員存取層級。

dateCreated

string

[Readonly]成員加入至集合的日期。

groupAssignments

GroupEntitlement[]

[Readonly]此成員所屬的 GroupEntitlements。

id

string

符合與 GraphMember 相關聯之 Identity 識別碼的唯一識別碼。

lastAccessedDate

string

[Readonly]上次存取集合的成員日期。

projectEntitlements

ProjectEntitlement[]

專案與該專案中成員的有效許可權之間的關聯性。

servicePrincipal

GraphServicePrincipal

ServicePrincipal 參考。

ServicePrincipalEntitlementOperationResult

名稱 類型 Description
errors

object[]

與對應錯誤訊息配對的錯誤碼清單。

isSuccess

boolean

作業的成功狀態。

result

string

產生的權利屬性。 如需特定實作,請參閱:

servicePrincipalId

string

正在處理之 ServicePrincipal 的識別碼。

ServicePrincipalEntitlementsPatchResponse

名稱 類型 Description
isSuccess

boolean

operationResults

ServicePrincipalEntitlementOperationResult[]

servicePrincipalEntitlement

ServicePrincipalEntitlement

TeamRef

小組的參考

名稱 類型 Description
id

string

小組識別碼

name

string

小組名稱

UserEntitlement

具有其他屬性的使用者實體,包括其授權、延伸模組和專案成員資格

名稱 類型 Description
accessLevel

AccessLevel

由授權表示的成員存取層級。

dateCreated

string

[Readonly]成員加入至集合的日期。

groupAssignments

GroupEntitlement[]

[Readonly]此成員所屬的 GroupEntitlements。

id

string

符合與 GraphMember 相關聯之 Identity 識別碼的唯一識別碼。

lastAccessedDate

string

[Readonly]上次存取集合的成員日期。

projectEntitlements

ProjectEntitlement[]

專案與該專案中成員的有效許可權之間的關聯性。

user

GraphUser

使用者參考。