Abrufen des Dienstprinzipals

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Dient zum Abrufen der Eigenschaften und Beziehungen eines servicePrincipal-Objekts.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Globaler Dienst US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) Application.Read.All Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Anwendung Application.Read.All Application.ReadWrite.OwnedBy, Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All

Hinweis

Ein Dienstprinzipal kann seine eigenen Anwendungs- und Dienstprinzipaldetails abrufen, ohne Anwendungsberechtigungen zu erhalten. Mit der Berechtigung Application.ReadWrite.OwnedBy kann eine App alle Anwendungen und Dienstprinzipale im Mandanten aufrufen GET /applications und GET /servicePrincipals auflisten. Dieser Zugriffsbereich wurde für die Berechtigung zugelassen.

HTTP-Anforderung

Sie können den Dienstprinzipal entweder mit seiner ID oder appId adressieren. id und appId werden in App-Registrierungen im Microsoft Entra Admin Center als Objekt-ID bzw. Anwendungs-ID (Client-ID) bezeichnet.

GET /servicePrincipals/{id}
GET /servicePrincipals(appId='{appId}')

Optionale Abfrageparameter

Diese Methode unterstützt die $select- und $expandOData-Abfrageparameter , um die Antwort anzupassen.

Diese Methode unterstützt die OData-Abfrageparameter$count, $expand$orderby$filter, , $search, $selectund $top zum Anpassen der Antwort. Einige Abfragen werden nur unterstützt, wenn Sie die Kopfzeile ConsistencyLevel verwenden, die auf eventual und $count festgelegt ist. Weitere Informationen finden Sie unter Erweiterte Abfragefunktionen für Verzeichnisobjekte.

Standardmäßig gibt diese API nicht den öffentlichen Schlüsselwert von key in der Eigenschaft keyCredentials zurück, es sei denn, keyCredentials wird in einer $select-Abfrage angegeben. Beispiel: $select=id,appId,keyCredentials.

Für die Verwendung von $select zum Abrufen von keyCredentials für Dienstprinzipale gilt ein Drosselungslimit von 150 Anforderungen pro Minute für jeden Mandanten.

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung.
Accept-Language Sprachcode. Optional.

Wenn Sie dem Accept-Language-Header einen unterstützten Sprachcode bereitstellen, z. B. es-ES oder de-DE, werden lokalisierte Werte zurückgegeben, sofern verfügbar. Beachten Sie, dass die Kopfzeile für Listenvorgänge nicht unterstützt wird.

Anforderungstext

Geben Sie keinen Anforderungstext für diese Methode an.

Antwort

Wenn die Methode erfolgreich verläuft, werden der Antwortcode 200 OK und ein servicePrincipal-Objekt im Antworttext zurückgegeben.

Beispiele

Beispiel 1: Abrufen der Eigenschaften des angegebenen Dienstprinzipals

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

GET https://graph.microsoft.com/beta/servicePrincipals/{id}

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

HTTP/1.1 200 OK
Content-type: application/json

{
        "id": "59e617e5-e447-4adc-8b88-00af644d7c92",
        "deletedDateTime": null,
        "accountEnabled": true,
        "appDisplayName": "My App",
        "appId": "65415bb1-9267-4313-bbf5-ae259732ee12",
        "applicationTemplateId": null,
        "appOwnerOrganizationId": "1bc1c026-2f7b-48a5-98da-afa2fd8bc7bc",
        "appRoleAssignmentRequired": false,
        "disabledByMicrosoftStatus": null,
        "displayName": "foo",
        "errorUrl": null,
        "homepage": null,
        "loginUrl": null,
        "logoutUrl": null,
        "notificationEmailAddresses": [],
        "preferredSingleSignOnMode": null,
        "preferredTokenSigningKeyEndDateTime": null,
        "preferredTokenSigningKeyThumbprint": null,
        "publisherName": "Contoso",
        "replyUrls": [],
        "samlMetadataUrl": null,
        "samlSingleSignOnSettings": null,
        "servicePrincipalNames": [
            "f1bd758f-4a1a-4b71-aa20-a248a22a8928"
        ],
        "signInAudience": "AzureADandPersonalMicrosoftAccount",
        "tags": [],
        "verifiedPublisher": {
            "displayName": "publisher_contoso",
            "verifiedPublisherId": "9999999",
             "addedDateTime": "2021-04-24T17:49:44Z"
        },
        "addIns": [],
        "api": {
            "resourceSpecificApplicationPermissions": []
        },
        "appRoles": [],
        "info": {
            "termsOfServiceUrl": null,
            "supportUrl": null,
            "privacyStatementUrl": null,
            "marketingUrl": null,
            "logoUrl": null
        },
        "keyCredentials": [],
        "publishedPermissionScopes": [],
        "passwordCredentials": []
}

Beispiel 2: Abrufen eines Dienstprinzipals anhand seiner appId und nur bestimmter Eigenschaften

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

GET https://graph.microsoft.com/beta/servicePrincipals(appId='00000003-0000-0000-c000-000000000000')?$select=id,appId,displayName,appRoles,publishedPermissionScopes,resourceSpecificApplicationPermissions

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(id,appId,displayName,appRoles,publishedPermissionScopes)/$entity",
    "id": "7408235b-7540-4850-82fe-a5f15ed019e2",
    "appId": "00000003-0000-0000-c000-000000000000",
    "displayName": "Microsoft Graph",
    "appRoles": [
        {
            "allowedMemberTypes": [
                "Application"
            ],
            "description": "Allows the app to read all class assignments without grades for all users without a signed-in user.",
            "displayName": "Read all class assignments without grades",
            "id": "6e0a958b-b7fc-4348-b7c4-a6ab9fd3dd0e",
            "isEnabled": true,
            "origin": "Application",
            "value": "EduAssignments.ReadBasic.All"
        }
    ],
    "publishedPermissionScopes": [
        {
            "adminConsentDescription": "Allows the app to see your users' basic profile (e.g., name, picture, user name, email address)",
            "adminConsentDisplayName": "View users' basic profile",
            "id": "14dad69e-099b-42c9-810b-d002981feec1",
            "isEnabled": true,
            "type": "User",
            "userConsentDescription": "Allows the app to see your basic profile (e.g., name, picture, user name, email address)",
            "userConsentDisplayName": "View your basic profile",
            "value": "profile"
        }
    ]
}
    

Beispiel 3: Abrufen der benutzerdefinierten Sicherheitsattributezuweisungen des angegebenen Dienstprinzipals

Das folgende Beispiel ruft die benutzerdefinierten Sicherheitsattribute des angegebenen Dienstprinzipals ab.

Attribut Nr. 1

  • Attributsatz: Engineering
  • Attribut: Project
  • Attributdatentyp: Auflistung von Zeichenfolgen
  • Attributwert: ["Baker","Cascade"]

Attribut Nr. 2

  • Attributsatz: Engineering
  • Attribut: CostCenter
  • Attributdatentyp: Sammlung von ganzzahligen Zahlen
  • Attributwert: [1001]

Attribut Nr. 3

  • Attributsatz: Engineering
  • Attribut: Certification
  • Attributdatentyp: Boolesch
  • Attributwert: true

Attribut Nr. 4

  • Attributsatz: Marketing
  • Attribut: Level
  • Attributdatentyp: Zeichenfolge
  • Attributwert: "Public"

Um benutzerdefinierte Sicherheitsattributzuweisungen abzurufen, muss dem aufrufenden Prinzipal die Rolle "Attributzuweisungsleser" oder "Attributzuweisungsadministrator" zugewiesen sein und ihm die Berechtigung CustomSecAttributeAssignment.Read.All oder CustomSecAttributeAssignment.ReadWrite.All gewährt werden.

Anforderung

GET https://graph.microsoft.com/beta/servicePrincipals/{id}?$select=customSecurityAttributes

Antwort

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(customSecurityAttributes)/$entity",
    "customSecurityAttributes": {
        "Engineering": {
            "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
            "Project@odata.type": "#Collection(String)",
            "Project": [
                "Baker",
                "Cascade"
            ],
            "CostCenter@odata.type": "#Collection(Int32)",
            "CostCenter": [
                1001
            ],
            "Certification": true
        },
        "Marketing": {
            "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
            "Level": "Public"
        }
    }
}

Wenn dem Dienstprinzipal keine benutzerdefinierten Sicherheitsattribute zugewiesen sind, oder der aufrufende Prinzipal keinen Zugriff hat, sieht die Antwort wie folgt aus:

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(customSecurityAttributes)/$entity",
    "customSecurityAttributes": null
}