Aktualisieren Sie die Eigenschaften des servicePrincipal-Objekts.
Wichtig
Die Verwendung von PATCH zum Festlegen vob passwordCredential wird nicht unterstützt. Verwenden Sie die addPassword- und removePassword-Methoden zum Aktualisieren des Kennworts für einen servicePrincipal.
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.
So aktualisieren Sie die customSecurityAttributes-Eigenschaft :
In delegierten Szenarien muss dem Administrator die Rolle Attributzuweisungsadministrator zugewiesen werden, und der App muss die delegierte Berechtigung CustomSecAttributeAssignment.ReadWrite.All gewährt werden.
In reinen App-Szenarien, die Microsoft Graph-Berechtigungen verwenden, muss der App die Anwendungsberechtigung CustomSecAttributeAssignment.ReadWrite.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.
Geben Sie im Anforderungstext die Werte für die relevanten Felder an, die aktualisiert werden sollen. Vorhandene Eigenschaften, die nicht im Anforderungstext enthalten sind, behalten ihre vorherigen Werte bei oder werden basierend auf Änderungen an anderen Eigenschaftswerten neu berechnet. Aus Gründen der Leistung sollten Sie vorhandene Werte, die nicht geändert wurden, nicht angeben.
Eigenschaft
Typ
Beschreibung
accountEnabled
Boolescher Wert
True, wenn das Dienstprinzipalkonto aktiviert ist; andernfalls false.
Definiert benutzerdefiniertes Verhalten, das von einem Verbraucherdienst verwendet werden kann, um eine App in bestimmten Kontexten aufzurufen. Beispielsweise können Anwendungen, die Datei-Streams rendern können, die addIns-Eigenschaft für deren "FileHandler"-Funktionalität festlegen. Dadurch können Dienste wie Microsoft 365 die Anwendung im Kontext eines Dokuments aufrufen, an dem der Benutzer arbeitet.
alternativeNames
Zeichenfolgenauflistung
Wird verwendet, um Dienstprinzipale nach Abonnement abzurufen, Ressourcengruppen- und vollständige Ressourcen-IDs für verwaltete Identitäten zu identifizieren.
appRoleAssignmentRequired
Boolesch
Gibt an, ob ein appRoleAssignment für einen Benutzer oder eine Gruppe erforderlich ist, bevor Microsoft Entra ID einen Benutzer oder ein Zugriffstoken für die Anwendung ausgibt. Lässt keine Nullwerte zu.
Die von der verknüpften Anwendung verfügbar gemachten Anwendungsrollen. Weitere Informationen finden Sie in der AppRoles-Eigenschaftsdefinition für die Anwendungsressource . Lässt keine NULL-Werte zu.
Ein offener komplexer Typ, der den Wert eines benutzerdefinierten Sicherheitsattributs enthält, das einem Verzeichnisobjekt zugewiesen ist.
Um diese Eigenschaft in delegierten Szenarien zu aktualisieren, muss dem aufrufenden Prinzipal die Rolle Attributzuweisungsadministrator zugewiesen werden, und der App muss die delegierte Berechtigung CustomSecAttributeAssignment.ReadWrite.All gewährt werden.
Um diese Eigenschaft in reinen App-Szenarien mit Microsoft Graph-Berechtigungen zu aktualisieren, muss der App die Anwendungsberechtigung CustomSecAttributeAssignment.ReadWrite.All erteilt werden.
Die Auflistung der wichtigsten Anmeldeinformationen, die mit dem Dienstprinzipal verknüpft sind. Lässt keine Nullwerte zu.
logoutUrl
Zeichenfolge
Gibt die URL an, die vom Autorisierungsdienst von Microsoft verwendet wird, um einen Benutzer mithilfe von Front-Channel-, Back-Channel- oder SAML-Abmeldungsprotokollen abzumelden.
Die von der verknüpften Anwendung verfügbar gemachten OAuth 2.0-Berechtigungsbereiche. Weitere Informationen finden Sie in der oauth2PermissionScopes-Eigenschaftsdefinition für die Anwendungsressource . Lässt keine NULL-Werte zu.
preferredSingleSignOnMode
Zeichenfolge
Gibt den Modus für einmaliges Anmelden an, der für diese Anwendung konfiguriert ist. Microsoft Entra ID verwendet den bevorzugten Modus für einmaliges Anmelden, um die Anwendung über Microsoft 365 oder das Meine Apps-Portal zu starten. Unterstützte Werte sind: password, saml, external und oidc.
replyUrls
Zeichenfolgenauflistung
Die URLs, an die Benutzertoken zur Anmeldung bei der verknüpften Anwendung gesendet werden, oder die Umleitungs-URIs, an die die OAuth 2.0-Autorisierungscodes und Zugriffstoken für die verknüpfte Anwendung gesendet werden. Lässt keine NULL-Werte zu.
servicePrincipalNames
Zeichenfolgenauflistung
Enthält die Liste der identifiersUris-, die aus der zugehörigen Anwendung kopiert werden. Hybridanwendungen können zusätzliche Werte hinzugefügt werden. Diese Werte können verwendet werden, um die Berechtigungen zu identifizieren, die von dieser App innerhalb Microsoft Entra ID verfügbar gemacht werden. Beispiel:
Client-Apps, die Berechtigungen für diese Ressource anfordern, können diese URIs verwenden, um die erforderlichen Berechtigungen in der requiredResourceAccess-Eigenschaft des Anwendungsmanifests oder im Blatt „API-Berechtigungen“ in der App-Registrierungsoberfläche anzugeben.
Client-Apps können einen Ressourcen-URI angeben, der auf den Werten dieser Eigenschaft basiert, um ein Zugriffstoken abzurufen, bei dem es sich um den URI handelt, der im Anspruch "aud" zurückgegeben wird.
Der "any"-Operator ist für Filterausdrücke für mehrwertige Eigenschaften erforderlich. Lässt keine NULL-Werte zu.
tags
String-Sammlung
Benutzerdefinierte Zeichenfolgen, die zum Kategorisieren und Identifizieren der Anwendung verwendet werden können. Lässt keine Nullwerte zu.
tokenEncryptionKeyId
Zeichenfolge
Gibt die keyId eines öffentlichen Schlüssels aus der keyCredentials-Sammlung an. Nach der Konfiguration gibt Microsoft Entra ID Token für diese Anwendung aus, die mit dem von dieser Eigenschaft angegebenen Schlüssel verschlüsselt wurden. Der Anwendungscode, der das verschlüsselte Token erhält, muss das Token mit dem zugehörigen privaten Schlüssel entschlüsseln, bevor es für den angemeldeten Benutzer verwendet werden kann.
Antwort
Wenn die Methode erfolgreich verläuft, werden der Antwortcode 204 No Content und ein aktualisiertes servicePrincipal-Objekt im Antworttext zurückgegeben.
Beispiel
Beispiel 1: Aktualisieren der Eigenschaften des angegebenen Dienstprinzipals
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new ServicePrincipal
{
AppRoleAssignmentRequired = true,
};
// 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}"].PatchAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewServicePrincipal()
appRoleAssignmentRequired := true
requestBody.SetAppRoleAssignmentRequired(&appRoleAssignmentRequired)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
servicePrincipals, err := graphClient.ServicePrincipals().ByServicePrincipalId("servicePrincipal-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ServicePrincipal servicePrincipal = new ServicePrincipal();
servicePrincipal.setAppRoleAssignmentRequired(true);
ServicePrincipal result = graphClient.servicePrincipals().byServicePrincipalId("{servicePrincipal-id}").patch(servicePrincipal);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\ServicePrincipal;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ServicePrincipal();
$requestBody->setAppRoleAssignmentRequired(true);
$result = $graphServiceClient->servicePrincipals()->byServicePrincipalId('servicePrincipal-id')->patch($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.service_principal import ServicePrincipal
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ServicePrincipal(
app_role_assignment_required = True,
)
result = await graph_client.service_principals.by_service_principal_id('servicePrincipal-id').patch(request_body)
Das folgende Beispiel zeigt die Antwort. Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt sein.
HTTP/1.1 204 No Content
Beispiel 2: Zuweisen eines benutzerdefinierten Sicherheitsattributs mit einem Zeichenfolgenwert zu einem Dienstprinzipal
Das folgende Beispiel zeigt, wie einem Dienstprinzipal ein benutzerdefiniertes Sicherheitsattribut mit einem Zeichenfolgenwert zugewiesen wird.
Attributsatz: Engineering
Attribut: ProjectDate
Attributdatentyp: Zeichenfolge
Attributwert: "2022-10-01"
Um benutzerdefinierte Sicherheitsattribute zuzuweisen, muss dem aufrufenden Prinzipal die Rolle "Attributzuweisungsadministrator" zugewiesen werden, und dem aufrufenden Prinzipal muss die Berechtigung CustomSecAttributeAssignment.ReadWrite.All erteilt werden.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
using Microsoft.Kiota.Abstractions.Serialization;
var requestBody = new ServicePrincipal
{
CustomSecurityAttributes = new CustomSecurityAttributeValue
{
AdditionalData = new Dictionary<string, object>
{
{
"Engineering" , new UntypedObject(new Dictionary<string, UntypedNode>
{
{
"@odata.type", new UntypedString("#Microsoft.DirectoryServices.CustomSecurityAttributeValue")
},
{
"projectDate", new UntypedString("2022-10-01")
},
})
},
},
},
};
// 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}"].PatchAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewServicePrincipal()
customSecurityAttributes := graphmodels.NewCustomSecurityAttributeValue()
additionalData := map[string]interface{}{
engineering := graph.New()
projectDate := "2022-10-01"
engineering.SetProjectDate(&projectDate)
customSecurityAttributes.SetEngineering(engineering)
}
customSecurityAttributes.SetAdditionalData(additionalData)
requestBody.SetCustomSecurityAttributes(customSecurityAttributes)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
servicePrincipals, err := graphClient.ServicePrincipals().ByServicePrincipalId("servicePrincipal-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ServicePrincipal servicePrincipal = new ServicePrincipal();
CustomSecurityAttributeValue customSecurityAttributes = new CustomSecurityAttributeValue();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
engineering = new ();
engineering.setOdataType("#Microsoft.DirectoryServices.CustomSecurityAttributeValue");
engineering.setProjectDate("2022-10-01");
additionalData.put("Engineering", engineering);
customSecurityAttributes.setAdditionalData(additionalData);
servicePrincipal.setCustomSecurityAttributes(customSecurityAttributes);
ServicePrincipal result = graphClient.servicePrincipals().byServicePrincipalId("{servicePrincipal-id}").patch(servicePrincipal);
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.service_principal import ServicePrincipal
from msgraph.generated.models.custom_security_attribute_value import CustomSecurityAttributeValue
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ServicePrincipal(
custom_security_attributes = CustomSecurityAttributeValue(
additional_data = {
"engineering" : {
"@odata_type" : "#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
"project_date" : "2022-10-01",
},
}
),
)
result = await graph_client.service_principals.by_service_principal_id('servicePrincipal-id').patch(request_body)