Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Espace de noms: microsoft.graph
Récupérer les propriétés et les relations de l’objetservicePrincipal.
Cette API est disponible dans les déploiements de cloud national suivants.
| Service global | Gouvernement des États-Unis L4 | Us Government L5 (DOD) | Chine gérée par 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Autorisations
Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.
| Type d’autorisation | Autorisations avec privilèges minimum | Autorisations privilégiées plus élevées |
|---|---|---|
| Déléguée (compte professionnel ou scolaire) | Application.Read.All | Application.ReadWrite.All, AgentIdentity.Read.All, AgentIdentityBlueprintPrincipal.Read.All, Directory.Read.All, Directory.ReadWrite.All |
| Déléguée (compte Microsoft personnel) | Non prise en charge. | Non prise en charge. |
| Application | Application.Read.All | Application.ReadWrite.OwnedBy, AgentIdentity.Read.All, AgentIdentityBlueprintPrincipal.Read.All, Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All |
Importante
Dans les scénarios délégués avec des comptes professionnels ou scolaires où l’utilisateur connecté agit sur un autre utilisateur, il doit se voir attribuer un rôle Microsoft Entra pris en charge ou un rôle personnalisé avec une autorisation de rôle prise en charge. Les rôles les moins privilégiés suivants sont pris en charge pour cette opération.
- Un membre non administrateur ou un utilisateur invité avec des autorisations d’utilisateur par défaut
- Développeur d’applications : lire les propriétés des principaux de service dont ils sont propriétaires
- Lecteurs d’annuaire : lire les propriétés standard
- Lecteur général
- Rédacteurs d'annuaires
- Administrateur d’identité hybride
- Administrateur de sécurité
- Administrateur de l'application cloud
- Administrateur de l'application
Autorisations pour des scénarios spécifiques
- Un principal de service peut récupérer les détails de sa propre application et de son principal de service sans qu'aucune autorisation d'application ne lui soit accordée.
-
L’autorisation Application.ReadWrite.OwnedBy permet à une application d’appeler
GET /applicationsetGET /servicePrincipalsde répertorier toutes les applications et principaux de service dans le locataire. Cette étendue d’accès a été autorisée pour l’autorisation. - Pour lire la propriété customSecurityAttributes :
- Dans les scénarios délégués, l’administrateur doit se voir attribuer le rôle Administrateur d’attribution d’attributs et l’application doit disposer de l’autorisation déléguée CustomSecAttributeAssignment.Read.All .
- Dans les scénarios d’application uniquement utilisant des autorisations Microsoft Graph, l’application doit disposer de l’autorisation d’application CustomSecAttributeAssignment.Reade.All .
Requête HTTP
Vous pouvez adresser le principal de service à l’aide de son id ou de son appId. id et appId sont respectivement appelés ID d’objet et ID d’application (client) dans les inscriptions d’applications dans le centre d’administration Microsoft Entra.
GET /servicePrincipals/{id}
GET /servicePrincipals(appId='{appId}')
Paramètres facultatifs de la requête
Cette méthode prend en charge les paramètres de requête $select et $expandOData pour aider à personnaliser la réponse.
Par défaut, cette API ne retourne la valeur de clé publique de la clé dans la propriété keyCredentials, sauf si keyCredentials est spécifié dans une $select requête.
Par exemple, $select=id,appId,keyCredentials.
L’utilisation de $select pour obtenir keyCredentials pour les principaux de service a une limite de limitation de 150 demandes par minute pour chaque client.
En-têtes de demande
| Nom | Description |
|---|---|
| Autorisation | Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation. |
| Accept-Language | Code langue Facultatif. |
Si vous fournissez un code de langue pris en charge, tel quees-ES ou de-DE, dans l'en-tête Accept-Language, vous obtiendrez des valeurs localisées si elles sont disponibles. Notez que l’en-tête n’est pas pris en charge pour les opérations de liste.
Corps de la demande
N’indiquez pas le corps de la demande pour cette méthode.
Réponse
En cas de réussite, cette méthode renvoie un 200 OKcode de réponse et l’objet serviceprincipal dans le corps de la réponse.
Exemples
Exemple 1 : Récupérer un principal de service par son ID
Demande
L’exemple suivant illustre une demande.
GET https://graph.microsoft.com/v1.0/servicePrincipals/00063ffc-54e9-405d-b8f3-56124728e051
Réponse
L’exemple suivant illustre la réponse.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
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
}
Exemple 2 : Récupérer les propriétés spécifiques d’un principal de service
Demande
L’exemple suivant illustre une demande.
GET https://graph.microsoft.com/v1.0/servicePrincipals/7408235b-7540-4850-82fe-a5f15ed019e2?$select=id,appId,displayName,appRoles,oauth2PermissionScopes,resourceSpecificApplicationPermissions
Réponse
L’exemple suivant illustre la réponse.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
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"
}
]
}
Exemple 3 : Obtenir les attributions d’attributs de sécurité personnalisées du principal de service spécifié
L’exemple suivant obtient les attributs de sécurité personnalisés du principal du service spécifié.
Attribut #1
- Jeu d’attributs :
Engineering - Attribut :
Project - Type de données d’attribut : collection de chaînes
- Valeur d’attribut :
["Baker","Cascade"]
Attribut #2
- Jeu d’attributs :
Engineering - Attribut :
CostCenter - Type de données d’attribut : collection de nombres entiers
- Valeur d’attribut :
[1001]
Attribut #3
- Jeu d’attributs :
Engineering - Attribut :
Certification - Type de données d’attribut : booléen
- Valeur d’attribut :
true
Attribut #4
- Jeu d’attributs :
Marketing - Attribut :
Level - Type de données d’attribut : chaîne
- Valeur d’attribut :
"Public"
Pour obtenir des affectations d’attributs de sécurité personnalisées, le principal appelant doit avoir le rôle de Lecteur d’affectation d’attributs ou le rôle d’Administrateur d’affectations d’attributs et doit avoir l’autorisation CustomSecAttributeAssignment.Read.All ou CustomSecAttributeAssignment.ReadWrite.All.
Demande
L’exemple suivant illustre une demande.
GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}?$select=customSecurityAttributes
Réponse
L’exemple suivant illustre la réponse.
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"
}
}
}
Si aucun attribut de sécurité personnalisé n’est attribué au principal du service ou si le principal appelant n’a pas d’accès, la réponse ressemble à :
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals(customSecurityAttributes)/$entity",
"customSecurityAttributes": null
}