Partager via


Service Principals - Create

Matérialisez un principal de service AAD existant dans le compte ADO.

REMARQUE : les principaux de service créés ne sont pas actifs dans un compte.

L’ajout d’un principal de service à un compte est nécessaire avant que le principal de service puisse être ajouté aux groupes ADO ou affecter une ressource.

Le corps de la demande doit être un type dérivé de GraphServicePrincipalCreationContext :

  • GraphServicePrincipalOriginIdCreationContext : créez un principal de service à l’aide de l’Id d’origine comme référence à un principal de service existant à partir d’un fournisseur soutenu par AAD.

Si le principal de service à ajouter correspond à un principal de service précédemment supprimé, ce principal de service est restauré.

Si vous le souhaitez, vous pouvez ajouter le principal de service nouvellement créé en tant que membre d’un groupe ADO existant et/ou spécifier une clé de stockage personnalisée pour le principal de service.

POST https://vssps.dev.azure.com/{organization}/_apis/graph/serviceprincipals?api-version=7.1-preview.1
POST https://vssps.dev.azure.com/{organization}/_apis/graph/serviceprincipals?groupDescriptors={groupDescriptors}&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.

groupDescriptors
query

string

array (string)

Liste séparée par des virgules de descripteurs de groupes que vous souhaitez joindre au principal du service graph

Corps de la demande

Nom Type Description
storageKey

string

Facultatif : s’il est fourni, nous utiliserons cet identificateur pour la clé de stockage du principal de service créé.

Réponses

Nom Type Description
200 OK

GraphServicePrincipal

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.graph_manage Octroie la possibilité de lire les informations d’appartenance aux utilisateurs, aux groupes, à l’étendue et aux groupes, et d’ajouter des utilisateurs, des groupes et de gérer les appartenances aux groupes

Exemples

Sample Request

POST https://vssps.dev.azure.com/{organization}/_apis/graph/serviceprincipals?api-version=7.1-preview.1

{
  "originId": "053b9e43-b344-4d53-897f-fe5d9c016625"
}

Sample Response

{
  "subjectKind": "servicePrincipal",
  "applicationId": "7adff1a5-9d3f-407d-8b79-4dd547d472b1",
  "directoryAlias": "053b9e43-b344-4d53-897f-fe5d9c016625",
  "domain": "62e2ee3f-dbd4-48d8-9b85-4a3776783e13",
  "principalName": "053b9e43-b344-4d53-897f-fe5d9c016625",
  "mailAddress": null,
  "origin": "aad",
  "originId": "053b9e43-b344-4d53-897f-fe5d9c016625",
  "displayName": "ServicePrincipalDisplayName",
  "_links": {
    "self": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/ServicePrincipals/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    },
    "memberships": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/Memberships/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    },
    "membershipState": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/MembershipStates/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    },
    "storageKey": {
      "href": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/StorageKeys/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    },
    "avatar": {
      "href": "https://dev.azure.com/Fabrikam/_apis/GraphProfile/MemberAvatars/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
    }
  },
  "url": "https://vssps.dev.azure.com/Fabrikam/_apis/Graph/ServicePrincipals/aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3",
  "descriptor": "aadsp.ZTM1NTU0YzUtMjg2MC03MWFkLWIzYjAtNzkzNWViMDg1Njg3"
}

Définitions

Nom Description
GraphServicePrincipal
GraphServicePrincipalCreationContext

N’essayez pas d’utiliser ce type pour créer un principal de service. Utilisez l’une des sous-classes à la place. Ce type ne contient pas suffisamment de champs pour créer un nouveau principal de service.

ReferenceLinks

Classe pour représenter une collection de liens de référence REST.

GraphServicePrincipal

Nom Type Description
_links

ReferenceLinks

Ce champ contient zéro ou plus de liens intéressants sur le sujet du graphe. Ces liens peuvent être appelés pour obtenir des relations supplémentaires ou des informations plus détaillées sur ce sujet de graphique.

applicationId

string

descriptor

string

Le descripteur est le principal moyen de référencer l’objet du graphe pendant l’exécution du système. Ce champ identifie de manière unique le même sujet de graphe pour les comptes et les organisations.

directoryAlias

string

Nom court et généralement unique de l’utilisateur dans le répertoire de stockage. Pour les utilisateurs AAD, cela correspond au surnom du courrier, qui est souvent mais pas nécessairement similaire à la partie de l’adresse de messagerie de l’utilisateur avant le signe @. Pour les utilisateurs GitHub, cela correspond au handle utilisateur GitHub.

displayName

string

Il s’agit du nom d’affichage non unique du sujet du graphique. Pour modifier ce champ, vous devez modifier sa valeur dans le fournisseur source.

domain

string

Cela représente le nom du conteneur d’origine d’un membre de graphe. (Pour MSA, il s’agit de « Windows Live ID », pour AD le nom du domaine, pour AAD le tenantID du répertoire, pour les groupes VSTS l’ScopeId, etc.)

isDeletedInOrigin

boolean

Quand la valeur est true, le groupe a été supprimé dans le fournisseur d’identité

legacyDescriptor

string

[Utilisation interne uniquement] Le descripteur hérité est ici au cas où vous deviez accéder à l’ancienne version d’IMS à l’aide du descripteur d’identité.

mailAddress

string

Adresse e-mail d’enregistrement pour un membre de graphique donné. Il peut être différent du nom principal.

metaType

string

Type méta de l’utilisateur dans l’origine, tel que « member », « guest », etc. Pour connaître l’ensemble des valeurs possibles, consultez UserMetaType.

origin

string

Type de fournisseur source pour l’identificateur d’origine (ex:AD, AAD, MSA)

originId

string

Identificateur unique du système d’origine. Généralement, un sid, un ID d’objet ou un GUID. Les opérations de liaison et de dissociation peuvent entraîner la modification de cette valeur pour un utilisateur, car l’utilisateur n’est pas soutenu par un autre fournisseur et a un ID unique différent dans le nouveau fournisseur.

principalName

string

Il s’agit du PrincipalName de ce membre de graphe du fournisseur source. Le fournisseur source peut modifier ce champ au fil du temps et il n’est pas garanti qu’il soit immuable pendant la durée de vie du membre du graphique par VSTS.

subjectKind

string

Ce champ identifie le type de l’objet du graphe (par exemple, Groupe, Étendue, Utilisateur).

url

string

Cette URL est l’itinéraire complet vers la ressource source de ce sujet de graphique.

GraphServicePrincipalCreationContext

N’essayez pas d’utiliser ce type pour créer un principal de service. Utilisez l’une des sous-classes à la place. Ce type ne contient pas suffisamment de champs pour créer un nouveau principal de service.

Nom Type Description
storageKey

string

Facultatif : s’il est fourni, nous utiliserons cet identificateur pour la clé de stockage du principal de service créé.

Classe pour représenter une collection de liens de référence REST.

Nom Type Description
links

object

Vue en lecture seule des liens. Étant donné que les liens de référence sont en lecture seule, nous voulons uniquement les exposer en lecture seule.