Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Namespace: microsoft.graph
Dient zum Abrufen der Eigenschaften und Beziehungen eines servicePrincipal-Objekts.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
| Weltweiter Service | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Berechtigungen
Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. 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, AgentIdentity.Read.All, AgentIdentityBlueprintPrincipal.Read.All, Directory.Read.All, Directory.ReadWrite.All |
| Delegiert (persönliches Microsoft-Konto) | Nicht unterstützt | Nicht unterstützt |
| Application | Application.Read.All | Application.ReadWrite.OwnedBy, AgentIdentity.Read.All, AgentIdentityBlueprintPrincipal.Read.All, Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All |
Wichtig
In delegierten Szenarien mit Geschäfts-, Schul- oder Unikonten, in denen der angemeldete Benutzer auf einen anderen Benutzer agiert, muss ihm eine unterstützte Microsoft Entra Rolle oder eine benutzerdefinierte Rolle mit einer unterstützten Rollenberechtigung zugewiesen werden. Die folgenden Rollen mit den geringsten Berechtigungen werden für diesen Vorgang unterstützt.
- Ein Nicht-Administratormitglied oder Gastbenutzer mit Standardbenutzerberechtigungen
- Anwendungsentwickler: Lesen der Eigenschaften von Dienstprinzipalen, die sie besitzen
- Verzeichnisleser – Lesen von Standardeigenschaften
- Globaler Leser
- Verzeichnisautoren
- Hybrididentitätsadministrator
- Sicherheitsadministrator
- Cloudanwendungsadministrator
- Anwendungsadministrator
Berechtigungen für bestimmte Szenarien
- 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 /applicationsundGET /servicePrincipalsauflisten. Dieser Zugriffsbereich wurde für die Berechtigung zugelassen. - So lesen Sie die customSecurityAttributes-Eigenschaft :
- In delegierten Szenarien muss dem Administrator die Rolle Attributzuweisungsadministrator zugewiesen werden, und der App muss die delegierte Berechtigung CustomSecAttributeAssignment.Read.All gewährt werden.
- In reinen App-Szenarien mit Microsoft Graph-Berechtigungen muss der App die Anwendungsberechtigung CustomSecAttributeAssignment.Reade.All erteilt werden.
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.
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 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 eines Dienstprinzipals anhand seiner ID
Anforderung
Das folgende Beispiel zeigt eine Anfrage.
GET https://graph.microsoft.com/v1.0/servicePrincipals/00063ffc-54e9-405d-b8f3-56124728e051
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
{
"accountEnabled": true,
"addIns": [],
"alternativeNames": ["http://contoso/a7770d29-4321-41a6-b863-ca11d6639448"],
"appDisplayName": "My app",
"appId": "appId-value",
"appOwnerOrganizationId": "65415bb1-9267-4313-bbf5-ae259732ee12",
"appRoleAssignmentRequired":true,
"appRoles": [],
"disabledByMicrosoftStatus": null,
"displayName": "My app instance in tenant",
"endpoints": [],
"homepage": null,
"id": "00af5dfb-85da-4b41-a677-0c6b86dd34f8",
"verifiedPublisher": {
"displayName": "publisher_contoso",
"verifiedPublisherId": "9999999",
"addedDateTime": "2021-04-24T17:49:44Z"
},
"info": {
"termsOfServiceUrl": null,
"supportUrl": null,
"privacyStatementUrl": null,
"marketingUrl": null,
"logoUrl": null
},
"keyCredentials": [],
"logoutUrl": null,
"oauth2PermissionScopes": [],
"passwordCredentials": [],
"publisherName": null,
"replyUrls": [],
"resourceSpecificApplicationPermissions": [],
"servicePrincipalNames": [],
"servicePrincipalType": null,
"signInAudience": "AzureADandPersonalMicrosoftAccount",
"tags": [],
"tokenEncryptionKeyId": null
}
Beispiel 2: Abrufen der spezifischen Eigenschaften eines Dienstprinzipals
Anforderung
Das folgende Beispiel zeigt eine Anfrage.
GET https://graph.microsoft.com/v1.0/servicePrincipals/7408235b-7540-4850-82fe-a5f15ed019e2?$select=id,appId,displayName,appRoles,oauth2PermissionScopes,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/v1.0/$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"
}
],
"oauth2PermissionScopes": [
{
"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
Das folgende Beispiel zeigt eine Anfrage.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}?$select=customSecurityAttributes
Antwort
Das folgende Beispiel zeigt die Antwort.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$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/v1.0/$metadata#servicePrincipals(customSecurityAttributes)/$entity",
"customSecurityAttributes": null
}