Share via


Service Principals - Create

Materialisieren Sie einen vorhandenen AAD-Dienstprinzipal in das ADO-Konto.

HINWEIS: Erstellte Dienstprinzipale sind in einem Konto nicht aktiv.

Das Hinzufügen eines Dienstprinzipals zu einem Konto ist erforderlich, bevor der Dienstprinzipal zu ADO-Gruppen hinzugefügt oder einem Objekt zugewiesen werden kann.

Der Text der Anforderung muss ein abgeleiteter Typ von GraphServicePrincipalCreationContext sein:

  • GraphServicePrincipalOriginIdCreationContext: Erstellen Sie einen neuen Dienstprinzipal mithilfe der OriginID als Verweis auf einen vorhandenen Dienstprinzipal des von AAD gesicherten Anbieters.

Wenn der hinzuzufügende Dienstprinzipal einem zuvor gelöschten Dienstprinzipal entspricht, wird dieser Dienstprinzipal wiederhergestellt.

Optional können Sie den neu erstellten Dienstprinzipal als Mitglied einer vorhandenen ADO-Gruppe hinzufügen und/oder einen benutzerdefinierten Speicherschlüssel für den Dienstprinzipal angeben.

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

URI-Parameter

Name In Erforderlich Typ Beschreibung
organization
path True

string

Der Name der Azure DevOps-Organisation.

api-version
query True

string

Version der zu verwendenden API. Dies sollte auf "7.1-preview.1" festgelegt werden, um diese Version der API zu verwenden.

groupDescriptors
query

string

array (string)

Eine durch Trennzeichen getrennte Liste von Deskriptoren von Gruppen, in die der Graph-Dienstprinzipal eingebunden werden soll

Anforderungstext

Name Typ Beschreibung
storageKey

string

Optional: Falls angegeben, verwenden wir diesen Bezeichner für den Speicherschlüssel des erstellten Dienstprinzipals.

Antworten

Name Typ Beschreibung
200 OK

GraphServicePrincipal

Erfolgreicher Vorgang

Sicherheit

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

Name Beschreibung
vso.graph_manage Ermöglicht das Lesen von Benutzer-, Gruppen-, Bereichs- und Gruppenmitgliedschaftsinformationen sowie das Hinzufügen von Benutzern, Gruppen und zum Verwalten von Gruppenmitgliedschaften

Beispiele

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"
}

Definitionen

Name Beschreibung
GraphServicePrincipal
GraphServicePrincipalCreationContext

Versuchen Sie nicht, diesen Typ zum Erstellen eines neuen Dienstprinzipals zu verwenden. Verwenden Sie stattdessen eine der Unterklassen. Dieser Typ enthält nicht genügend Felder, um einen neuen Dienstprinzipal zu erstellen.

ReferenceLinks

Die Klasse, die eine Auflistung von REST-Verweislinks darstellt.

GraphServicePrincipal

Name Typ Beschreibung
_links

ReferenceLinks

Dieses Feld enthält null oder interessantere Links zum Diagrammthema. Diese Links können aufgerufen werden, um zusätzliche Beziehungen oder ausführlichere Informationen zu diesem Graph-Thema zu erhalten.

applicationId

string

descriptor

string

Der Deskriptor ist die primäre Möglichkeit, auf den Graphengegenstand zu verweisen, während das System ausgeführt wird. In diesem Feld wird derselbe Graph-Betreff sowohl für Konten als auch für Organisationen eindeutig identifiziert.

directoryAlias

string

Der kurze, im Allgemeinen eindeutige Name für den Benutzer im Sicherungsverzeichnis. Für AAD-Benutzer entspricht dies dem E-Mail-Spitznamen, der oft, aber nicht unbedingt dem Teil der E-Mail-Adresse des Benutzers vor dem @-Zeichen ähnelt. Für GitHub-Benutzer entspricht dies dem GitHub-Benutzerhandle.

displayName

string

Dies ist der nicht eindeutige Anzeigename des Diagrammsubjekts. Um dieses Feld zu ändern, müssen Sie seinen Wert im Quellanbieter ändern.

domain

string

Dies stellt den Namen des Ursprungscontainers für ein Graphmember dar. (Für MSA ist dies "Windows Live ID", für AD der Name der Domäne, für AAD die Mandanten-ID des Verzeichnisses, für VSTS-Gruppen die ScopeId usw.)

isDeletedInOrigin

boolean

Wenn true, wurde die Gruppe im Identitätsanbieter gelöscht.

legacyDescriptor

string

[Nur interne Verwendung] Der Legacydeskriptor ist hier, falls Sie mithilfe des Identitätsdeskriptors auf IMS der alten Version zugreifen müssen.

mailAddress

string

Die E-Mail-Adresse des Datensatzes für ein bestimmtes Graphelement. Dies kann sich vom Prinzipalnamen unterscheiden.

metaType

string

Der Metatyp des Benutzers im Ursprung, z. B. "Member", "Guest" usw. Informationen zu den möglichen Werten finden Sie unter UserMetaType.

origin

string

Der Typ des Quellanbieters für den Ursprungsbezeichner (z. B. AD, AAD, MSA)

originId

string

Der eindeutige Bezeichner aus dem Ursprungssystem. In der Regel eine Sid- oder Objekt-ID oder guid. Verknüpfungs- und Verknüpfungsvorgänge können dazu führen, dass sich dieser Wert für einen Benutzer ändert, da der Benutzer nicht von einem anderen Anbieter unterstützt wird und eine andere eindeutige ID im neuen Anbieter aufweist.

principalName

string

Dies ist der PrincipalName dieses Graphelements vom Quellanbieter. Der Quellanbieter kann dieses Feld im Laufe der Zeit ändern, und es ist nicht garantiert, dass es für die Lebensdauer des Graphelements durch VSTS unveränderlich ist.

subjectKind

string

Dieses Feld identifiziert den Typ des Graph-Betreffs (z. B. Gruppe, Bereich, Benutzer).

url

string

Diese URL ist die vollständige Route zur Quellressource dieses Graph-Betreffs.

GraphServicePrincipalCreationContext

Versuchen Sie nicht, diesen Typ zum Erstellen eines neuen Dienstprinzipals zu verwenden. Verwenden Sie stattdessen eine der Unterklassen. Dieser Typ enthält nicht genügend Felder, um einen neuen Dienstprinzipal zu erstellen.

Name Typ Beschreibung
storageKey

string

Optional: Falls angegeben, verwenden wir diesen Bezeichner für den Speicherschlüssel des erstellten Dienstprinzipals.

Die Klasse, die eine Auflistung von REST-Verweislinks darstellt.

Name Typ Beschreibung
links

object

Die schreibgeschützte Ansicht der Links. Da Verweislinks schreibgeschützt sind, möchten wir sie nur als schreibgeschützt verfügbar machen.