Einem Dienstprinzipal eine appRoleAssignment zuweisen
Artikel
Namespace: microsoft.graph
Weisen Sie einem Ressourcendienstprinzipal, einem Benutzer, Gruppen- oder Client-Dienstprinzipal eine App-Rolle zu.
Dienstprinzipalen zugewiesene App-Rollen werden auch als Anwendungsberechtigungen bezeichnet. Anwendungsberechtigungen können direkt durch App-Rollenzuweisungen oder über eine Zustimmungsfunktionalität erteilt werden.
Für die Erteilung einer App-Rollenzuweisung benötigen Sie drei Bezeichner:
principalId: Die id des Benutzer-, Gruppen- oder Client-Dienstprinzipals, dem Sie die App-Rolle zuweisen möchten.
resourceId: Die id des Ressourcendienstprinzipals, über den die App-Rolle definiert wurde.
appRoleId: Die id der (im Ressourcendienstprinzipal definierte) App-Rolle, die einem Benutzer-, Gruppen- oder Dienstprinzipal zugeordnet werden soll.
Eine der nachfolgenden Berechtigungen ist erforderlich, um diese API aufrufen zu können. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie unter Berechtigungen.
Berechtigungstyp
Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten)
Delegiert (Geschäfts-, Schul- oder Unikonto)
AppRoleAssignment.ReadWrite.All und Application.Read.All, AppRoleAssignment.ReadWrite.All und Directory.Read.All
Delegiert (persönliches Microsoft-Konto)
Nicht unterstützt
Anwendung
AppRoleAssignment.ReadWrite.All und Application.Read.All, AppRoleAssignment.ReadWrite.All und Directory.Read.All
Für delegierte Szenarien benötigt der aufrufende Benutzer mindestens eine der folgenden Microsoft Entra Rollen.
Verzeichnissynchronisierungskonten
Verzeichnisschreibberechtigter
Hybrididentitätsadministrator
Identity Governance-Administrator
Administrator für privilegierte Rollen
Benutzeradministrator
Anwendungsadministrator
Cloudanwendungsadministrator
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.
POST /servicePrincipals/{id}/appRoleAssignedTo
POST /servicePrincipals(appId='{appId}')/appRoleAssignedTo
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AppRoleAssignment
{
PrincipalId = Guid.Parse("33ad69f9-da99-4bed-acd0-3f24235cb296"),
ResourceId = Guid.Parse("9028d19c-26a9-4809-8e3f-20ff73e2d75e"),
AppRoleId = Guid.Parse("ef7437e6-4f94-4a0a-a110-a439eb2aa8f7"),
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.ServicePrincipals["{servicePrincipal-id}"].AppRoleAssignedTo.PostAsync(requestBody);
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc service-principals app-role-assigned-to create --service-principal-id {servicePrincipal-id} --body '{\
"principalId": "33ad69f9-da99-4bed-acd0-3f24235cb296",\
"resourceId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",\
"appRoleId": "ef7437e6-4f94-4a0a-a110-a439eb2aa8f7"\
}\
'
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AppRoleAssignment appRoleAssignment = new AppRoleAssignment();
appRoleAssignment.setPrincipalId(UUID.fromString("33ad69f9-da99-4bed-acd0-3f24235cb296"));
appRoleAssignment.setResourceId(UUID.fromString("9028d19c-26a9-4809-8e3f-20ff73e2d75e"));
appRoleAssignment.setAppRoleId(UUID.fromString("ef7437e6-4f94-4a0a-a110-a439eb2aa8f7"));
AppRoleAssignment result = graphClient.servicePrincipals().byServicePrincipalId("{servicePrincipal-id}").appRoleAssignedTo().post(appRoleAssignment);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\AppRoleAssignment;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AppRoleAssignment();
$requestBody->setPrincipalId('33ad69f9-da99-4bed-acd0-3f24235cb296');
$requestBody->setResourceId('9028d19c-26a9-4809-8e3f-20ff73e2d75e');
$requestBody->setAppRoleId('ef7437e6-4f94-4a0a-a110-a439eb2aa8f7');
$result = $graphServiceClient->servicePrincipals()->byServicePrincipalId('servicePrincipal-id')->appRoleAssignedTo()->post($requestBody)->wait();
In diesem Beispiel wären {id} und {resourceId-value} die id des Ressourcendienstprinzipals, und {principalId} wäre die id des zugeordneten Benutzer-, Gruppen- oder Client-Dienstprinzipals.
Antwort
Das folgende Beispiel zeigt die Antwort.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter https://aka.ms/ContentUserFeedback.