Créer oAuth2PermissionGrant (octroi d’autorisations déléguées)
Espace de noms: microsoft.graph
Importante
Les API sous la version /beta
dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .
Créez une autorisation déléguée, représentée par un objet oAuth2PermissionGrant .
Une autorisation déléguée autorise un principal de service client (représentant une application cliente) à accéder à un principal de service de ressources (représentant une API), au nom d’un utilisateur connecté, pour le niveau d’accès limité par les autorisations déléguées qui ont été accordées.
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) | DelegatedPermissionGrant.ReadWrite.All | Directory.ReadWrite.All |
Déléguée (compte Microsoft personnel) | Non prise en charge. | Non prise en charge. |
Application | DelegatedPermissionGrant.ReadWrite.All | Directory.ReadWrite.All |
Importante
Dans les scénarios délégués avec des comptes professionnels ou scolaires, l’utilisateur connecté 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 :
- Administrateur de l'application
- Développeur d’applications
- Administrateur de l'application cloud
- Rédacteurs d'annuaires
- Administrateur de rôle privilégié
- Administrateur d’utilisateurs
Requête HTTP
POST /oauth2PermissionGrants
En-têtes de demande
Nom | Type | Description |
---|---|---|
Autorisation | string | Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation. |
Corps de la demande
Dans le corps de la demande, fournissez une représentation JSON d’un objet oAuth2PermissionGrant .
Le tableau suivant répertorie les propriétés requises lorsque vous créez le oAuth2PermissionGrant.
Propriété | Type | Description |
---|---|---|
clientId | String | ID d’objet (et nonappId) du principal de service client pour l’application qui est autorisée à agir au nom d’un utilisateur connecté lors de l’accès à une API. Obligatoire. |
consentType | String | Indique si l’autorisation est accordée à l’application cliente pour emprunter l’identité de tous les utilisateurs ou uniquement d’un utilisateur spécifique. AllPrincipals indique l’autorisation d’emprunter l’identité de tous les utilisateurs. Principal indique l’autorisation d’emprunter l’identité d’un utilisateur spécifique. Le consentement au nom de tous les utilisateurs peut être accordé par un administrateur. Les utilisateurs non administrateurs peuvent être autorisés à donner leur consentement en leur nom dans certains cas, pour certaines autorisations déléguées. Obligatoire. |
principalId | String | ID de l’utilisateur au nom duquel le client est autorisé à accéder à la ressource, lorsque consentType a la valeur Principal. Si consentType a la valeur AllPrincipals , cette valeur est null. Obligatoire lorsque consentType a la valeur Principal. |
resourceId | String | ID du principal de service de ressource auquel l’accès est autorisé. Cela identifie l’API que le client est autorisé à tenter d’appeler au nom d’un utilisateur connecté. |
étendue | String | Liste séparée par des espaces des valeurs de revendication pour les autorisations déléguées qui doivent être incluses dans les jetons d’accès pour l’application de ressource (l’API). Par exemple : openid User.Read GroupMember.Read.All . Chaque valeur de revendication doit correspondre au champ valeur de l’une des autorisations déléguées définies par l’API, répertoriées dans la propriété publishedPermissionScopes du principal du service de ressources. Ne doit pas dépasser 3850 caractères. |
startTime | DateTimeOffset | Actuellement, la valeur d’heure de début est ignorée, mais une valeur est requise. Obligatoire. |
expiryTime | DateTimeOffset | Actuellement, la valeur d’heure de fin est ignorée, mais une valeur est requise. Obligatoire. |
Réponse
Si elle réussit, cette méthode renvoie un code de réponse de série 200 et un nouvel objet oAuth2PermissionGrant dans le corps de la réponse.
Exemple
Demande
POST https://graph.microsoft.com/beta/oauth2PermissionGrants
Content-Type: application/json
{
"clientId": "ef969797-201d-4f6b-960c-e9ed5f31dab5",
"consentType": "AllPrincipals",
"resourceId": "943603e4-e787-4fe9-93d1-e30f749aae39",
"scope": "DelegatedPermissionGrant.ReadWrite.All",
"startTime": "2022-03-17T00:00:00Z",
"expiryTime": "2023-03-17T00:00:00Z"
}
Réponse
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#oauth2PermissionGrants/$entity",
"clientId": "ef969797-201d-4f6b-960c-e9ed5f31dab5",
"consentType": "AllPrincipals",
"expiryTime": "2023-03-17T00:00:00Z",
"id": "l5eW7x0ga0-WDOntXzHateQDNpSH5-lPk9HjD3Sarjk",
"principalId": null,
"resourceId": "943603e4-e787-4fe9-93d1-e30f749aae39",
"scope": "DelegatedPermissionGrant.ReadWrite.All",
"startTime": "2022-03-17T00:00:00Z"
}