Obtenir servicePrincipal
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, 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, Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All |
Remarque
- 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 /applications
etGET /servicePrincipals
de 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 $expand
OData 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 OK
code 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/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"
}
],
"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
}