Partager via


Service Principal Entitlements - Update Service Principal Entitlements

Modifiez les droits (Licence, Extensions, Projets, Teams, etc.) pour un ou plusieurs principaux de service.

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

Paramètres URI

Nom Dans Obligatoire Type Description
organization
path True

string

Nom de l’organisation Azure DevOps.

api-version
query True

string

Version de l’API à utiliser. Cette valeur doit être définie sur « 7.1-preview.1 » pour utiliser cette version de l’API.

Corps de la demande

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

Nom Type Description
from

string

Chemin d’accès à partir duquel effectuer la copie pour l’opération Move/Copy.

op

Operation

Opération de correctif

path

string

Chemin d’accès de l’opération. Dans le cas d’un tableau, un index de base zéro peut être utilisé pour spécifier la position dans le tableau (par exemple, /biscuits/0/name). Le caractère « - » peut être utilisé à la place d’un index à insérer à la fin du tableau (par exemple, /biscuits/-).

value

object

Valeur de l’opération. Il s’agit d’une primitive ou d’un JToken.

Réponses

Nom Type Description
200 OK

ServicePrincipalEntitlementOperationReference

opération réussie

Sécurité

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

Nom Description
vso.memberentitlementmanagement_write Permet de gérer les utilisateurs, leurs licences, ainsi que les projets et extensions auxquels ils peuvent accéder

Exemples

Sample Request

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

[
  {
    "from": "",
    "op": "replace",
    "path": "/ed82811a-0890-6f7f-813e-69dd9ebd5ba3/accessLevel",
    "value": {
      "accountLicenseType": "express",
      "licensingSource": "account"
    }
  },
  {
    "from": "",
    "op": "remove",
    "path": "/ed82811a-0890-6f7f-813e-69dd9ebd5ba3/projectEntitlements/fca61097-56a1-464f-85ba-1b126cf02cd1",
    "value": ""
  },
  {
    "from": "",
    "op": "add",
    "path": "/ed82811a-0890-6f7f-813e-69dd9ebd5ba3/projectEntitlements/6fa35aad-6755-4dd7-8c69-e13f702af0f9",
    "value": {
      "group": {
        "groupType": "projectAdministrator"
      },
      "projectRef": {
        "id": "6fa35aad-6755-4dd7-8c69-e13f702af0f9"
      }
    }
  },
  {
    "from": "",
    "op": "add",
    "path": "",
    "value": {
      "accessLevel": {
        "accountLicenseType": "stakeholder"
      },
      "projectEntitlements": [
        {
          "group": {
            "groupType": "projectAdministrator"
          },
          "projectRef": {
            "id": "fca61097-56a1-464f-85ba-1b126cf02cd1"
          }
        }
      ],
      "servicePrincipal": {
        "origin": "aad",
        "originId": "00ed1ce5-4257-4bbd-946e-1b57718e203e",
        "subjectKind": "servicePrincipal"
      }
    }
  }
]

Sample Response

{
  "id": "cba1141f-6471-437e-8c6c-79a08813f247",
  "status": "succeeded",
  "haveResultsSucceeded": true,
  "completed": true,
  "results": [
    {
      "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
    },
    {
      "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": "d1a24244-f6cc-488b-bca7-42eb10f13c5b",
          "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-08T12:30:21.5692042Z",
        "projectEntitlements": [],
        "groupAssignments": []
      }
    }
  ]
}

Définitions

Nom Description
JsonPatchDocument

Modèle JSON pour les opérations de correctif JSON

Operation

Opération de correctif

OperationStatus

État actuel de l’opération.

ServicePrincipalEntitlementOperationReference
ServicePrincipalEntitlementOperationResult

JsonPatchDocument

Modèle JSON pour les opérations de correctif JSON

Nom Type Description
from

string

Chemin d’accès à partir duquel effectuer la copie pour l’opération Move/Copy.

op

Operation

Opération de correctif

path

string

Chemin d’accès de l’opération. Dans le cas d’un tableau, un index de base zéro peut être utilisé pour spécifier la position dans le tableau (par exemple, /biscuits/0/name). Le caractère « - » peut être utilisé à la place d’un index à insérer à la fin du tableau (par exemple, /biscuits/-).

value

object

Valeur de l’opération. Il s’agit d’une primitive ou d’un JToken.

Operation

Opération de correctif

Nom Type Description
add

string

copy

string

move

string

remove

string

replace

string

test

string

OperationStatus

État actuel de l’opération.

Nom Type Description
cancelled

string

L’opération a été annulée par l’utilisateur.

failed

string

L’opération s’est terminée avec un échec.

inProgress

string

L’opération est en cours.

notSet

string

L’opération n’a pas d’état défini.

queued

string

L’opération a été mise en file d’attente.

succeeded

string

L’opération s’est terminée avec succès.

ServicePrincipalEntitlementOperationReference

Nom Type Description
completed

boolean

Opération terminée avec succès ou échec.

haveResultsSucceeded

boolean

True si toutes les opérations ont réussi.

id

string

Identificateur unique de l’opération.

pluginId

string

Identificateur unique du plug-in.

results

ServicePrincipalEntitlementOperationResult[]

Liste des résultats pour chaque opération.

status

OperationStatus

État actuel de l’opération.

url

string

URL permettant d’obtenir l’objet d’opération complet.

ServicePrincipalEntitlementOperationResult

Nom Type Description
errors

object[]

Liste des codes d’erreur associés à leurs messages d’erreur correspondants.

isSuccess

boolean

État de réussite de l’opération.

result

string

Propriété de droit résultante. Pour des implémentations spécifiques, consultez également :

servicePrincipalId

string

Identificateur du ServicePrincipal en cours d’action.