Partager via


Gérer l’accès aux ressources à l’aide des API de gestion des droits d’utilisation

Microsoft Entra gestion des droits d’utilisation vous permet de gérer l’accès aux ressources à grande échelle pour les employés et les invités de votre organization. Ce tutoriel montre comment utiliser les API de gestion des droits d’utilisation pour créer un package de ressources que les utilisateurs internes peuvent demander. Les API offrent une alternative programmatique à la création d’applications personnalisées dans le centre d’administration Microsoft Entra.

Dans ce tutoriel, vous apprenez à effectuer les opérations suivantes :

  • Créez un package d’accès que les utilisateurs peuvent demander eux-mêmes.
  • Affectez une ressource de groupe au package d’accès.
  • Demander un package d’accès.

Configuration requise

Pour suivre ce didacticiel, vous avez besoin des éléments suivants :

  • Un locataire Microsoft Entra avec une licence Microsoft Entra ID P2 ou Gouvernance Microsoft Entra ID.
  • Un compte invité de test et un groupe de sécurité de test dans votre locataire. Le groupe de sécurité est la ressource de ce didacticiel. Vérifiez que vous êtes le propriétaire du groupe ou que le rôle Administrateur de groupes est attribué. Dans ce tutoriel :
    • L’utilisateur a l’ID 007d1c7e-7fa8-4e33-b678-5e437acdcddc et est nommé Requestor1.
    • Le groupe a l’ID f4892fac-e81c-4712-bdf2-a4450008a4b0 avec la description « Groupe marketing » et le nom d’affichage « Ressources marketing ».
  • Un client API tel que Graph Explorer connecté avec un compte qui a au moins le rôle Administrateur de gouvernance des identités
  • Autorisations déléguées :
    • User.ReadWrite.All
    • Group.ReadWrite.All
    • EntitlementManagement.ReadWrite.All
  • [Facultatif] Fenêtre de navigateur anonyme. Connectez-vous plus loin dans ce tutoriel.

Remarque

Certaines étapes de ce didacticiel utilisent le point de beta terminaison.

Étape 1 : Ajouter des ressources à un catalogue et créer un package d’accès

Un package d’accès est un ensemble de ressources dont une équipe ou un projet a besoin et qui est régi par des stratégies. Les packages d’accès sont définis dans des conteneurs appelés catalogues. Les catalogues peuvent référencer des ressources, telles que des groupes, des applications et des sites, qui sont utilisées dans le package d’accès. La gestion des droits d’utilisation inclut un catalogue par défaut General .

Dans cette étape, vous allez créer un package d’accès campagne marketing dans le catalogue Général.

Étape 1.1 : Obtenir l’identificateur du catalogue Général

Obtenez l’ID du catalogue Général .

Demande

GET https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/catalogs?$filter=(displayName eq 'General')

Réponse

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/entitlementManagement/catalogs",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET identityGovernance/entitlementManagement/catalogs?$select=catalogType,createdDateTime",
    "value": [
        {
            "id": "cec5d6ab-c75d-47c0-9c1c-92e89f66e384",
            "displayName": "General",
            "description": "Built-in catalog.",
            "catalogType": "serviceDefault",
            "state": "published",
            "isExternallyVisible": true,
            "createdDateTime": "2023-04-13T14:43:19.44Z",
            "modifiedDateTime": "2023-04-13T14:43:19.44Z"
        }
    ]
}

Étape 1.2 : Ajouter le groupe au catalogue

Dans cette étape, vous ajoutez le groupe « Ressources marketing » au catalogue Général en tant que ressource.

Si vous n’êtes pas le propriétaire du groupe que vous référencez dans originId ou si le rôle Administrateur de groupes n’est pas attribué, cette demande échoue avec un 403 Forbidden code d’erreur.

Demande

POST https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/resourceRequests
Content-type: application/json

{
  "catalogId":"cec5d6ab-c75d-47c0-9c1c-92e89f66e384",
  "requestType": "AdminAdd",
  "justification": "",
  "accessPackageResource": {
    "resourceType": "AadGroup",
    "originId": "e93e24d1-2b65-4a6c-a1dd-654a12225487",
    "originSystem": "AadGroup"
  }
}

Réponse

Dans cette réponse, l’ID représente l’ID du groupe en tant que ressource dans le catalogue Général. Cet ID n’est pas l’ID de groupe. Enregistrez cet ID.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/entitlementManagement/resourceRequests/$entity",
    "id": "44e521e0-fb6b-4d5e-a282-e7e68dc59493",
    "requestType": "AdminAdd",
    "requestState": "Delivered",
    "requestStatus": "Fulfilled",
    "catalogId": "cec5d6ab-c75d-47c0-9c1c-92e89f66e384",
    "executeImmediately": false,
    "justification": "",
    "expirationDateTime": null
}

Étape 1.3 : Obtenir les ressources du catalogue

Dans cette étape, vous récupérez les détails des ressources qui correspondent à l’ID de la ressource de groupe que vous avez ajoutée au catalogue Général.

Demande

GET https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/catalogs/cec5d6ab-c75d-47c0-9c1c-92e89f66e384/resources?$filter=originId eq 'e93e24d1-2b65-4a6c-a1dd-654a12225487'

Réponse

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/entitlementManagement/catalogs('cec5d6ab-c75d-47c0-9c1c-92e89f66e384')/resources",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET identityGovernance/entitlementManagement/catalogs('<guid>')/resources?$select=attributes,createdDateTime",
  "value": [
    {
      "id": "4a1e21c5-8a76-4578-acb1-641160e076e8",
      "displayName": "Marketing resources",
      "description": "Marketing group",
      "originId": "e93e24d1-2b65-4a6c-a1dd-654a12225487",
      "originSystem": "AadGroup",
      "createdDateTime": "2024-03-26T09:44:50.527Z",
      "attributes": []
    }
  ]
}

Étape 1.4 : Obtenir des rôles de ressources

Le package d’accès affecte des utilisateurs aux rôles d’une ressource. Le rôle classique d’un groupe est le Member rôle. D’autres ressources, telles que les sites et applications SharePoint Online, peuvent avoir de nombreux rôles. Le rôle type d’un groupe utilisé dans un package d’accès est le Member rôle . Vous avez besoin du rôle de membre pour ajouter un rôle de ressource au package d’accès plus loin dans ce tutoriel.

Dans la demande, utilisez l’ID du catalogue et l’ID de la ressource de groupe dans le catalogue que vous avez enregistré pour obtenir l’originId du rôle de ressource Membre. Enregistrez la valeur de la propriété originId à utiliser plus loin dans ce didacticiel.

Demande

GET https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/catalogs/ede67938-cda7-4127-a9ca-7c7bf86a19b7/resourceRoles?$filter=(originSystem eq 'AadGroup' and displayName eq 'Member' and resource/id eq '274a1e21c5-8a76-4578-acb1-641160e076e')&$expand=resource

Réponse

Étant donné que vous avez filtré par l’id d’origine, le nom d’affichage et l’ID de ressource, en cas de réussite, une seule valeur est retournée, qui représente le rôle Membre de ce groupe. Si aucun rôle n’est retourné, case activée les valeurs d’ID du catalogue et de la ressource du package d’accès.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/entitlementManagement/catalogs('ede67938-cda7-4127-a9ca-7c7bf86a19b7')/resourceRoles(resource())",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET identityGovernance/entitlementManagement/catalogs('<guid>')/resourceRoles?$select=description,displayName",
    "value": [
        {
            "id": "00000000-0000-0000-0000-000000000000",
            "displayName": "Member",
            "description": null,
            "originSystem": "AadGroup",
            "originId": "Member_e93e24d1-2b65-4a6c-a1dd-654a12225487",
            "resource@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/entitlementManagement/catalogs('ede67938-cda7-4127-a9ca-7c7bf86a19b7')/resourceRoles('00000000-0000-0000-0000-000000000000')/resource/$entity",
            "resource": {
                "id": "ec09e90e-e021-4599-a8c3-bce77c2b2000",
                "displayName": "Marketing resources",
                "description": "Marketing group",
                "originId": "e93e24d1-2b65-4a6c-a1dd-654a12225487",
                "originSystem": "AadGroup",
                "createdDateTime": "2023-04-13T14:43:21.43Z",
                "attributes": []
            }
        }
    ]
}

Étape 1.5 : Créer le package d’accès

Vous disposez maintenant d’un catalogue avec une ressource de groupe et vous souhaitez utiliser le rôle de ressource de membre du groupe dans le package d’accès. L’étape suivante consiste à créer le package d’accès. Une fois que vous avez le package d’accès, vous pouvez y ajouter le rôle de ressource et créer une stratégie pour la façon dont les utilisateurs peuvent demander l’accès à ce rôle de ressource. Vous utilisez l’ID du catalogue que vous avez enregistré précédemment pour créer le package d’accès. Enregistrez l’ID du package d’accès à utiliser plus loin dans ce tutoriel.

Demande

POST https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages
Content-type: application/json

{
  "catalogId": "cec5d6ab-c75d-47c0-9c1c-92e89f66e384",
  "displayName": "Marketing Campaign",
  "description": "Access to resources for the campaign"
}

Réponse

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/entitlementManagement/accessPackages/$entity",
    "id": "88203d16-0e31-41d4-87b2-dd402f1435e9",
    "catalogId": "cec5d6ab-c75d-47c0-9c1c-92e89f66e384",
    "displayName": "Marketing Campaign",
    "description": "Access to resources for the campaign",
    "isHidden": false,
    "isRoleScopesVisible": false,
    "createdBy": "admin@contoso.com",
    "createdDateTime": "2024-03-26T17:36:45.411033Z",
    "modifiedBy": "admin@contoso.com",
    "modifiedDateTime": "2024-03-26T17:36:45.411033Z"
}

Étape 1.6 : Ajouter un rôle de ressource au package d’accès

Demande

POST https://graph.microsoft.com/v1.0/identityGovernance/entitlementManagement/accessPackages/88203d16-0e31-41d4-87b2-dd402f1435e9/accessPackageResourceRoleScopes
Content-type: application/json

{
  "role": {
    "originId":"Member_f4892fac-e81c-4712-bdf2-a4450008a4b0",
    "displayName":"Member",
    "originSystem":"AadGroup",
    "resource": {
      "id":"4a1e21c5-8a76-4578-acb1-641160e076e8",
      "resourceType":"Security Group",
      "originId":"f4892fac-e81c-4712-bdf2-a4450008a4b0",
      "originSystem":"AadGroup"
    }
  },
  "scope": {
    "originId":"f4892fac-e81c-4712-bdf2-a4450008a4b0",
    "originSystem":"AadGroup"
  }
}

Réponse

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/entitlementManagement/accessPackages('88203d16-0e31-41d4-87b2-dd402f1435e9')/accessPackageResourceRoleScopes/$entity",
  "id": "e081321b-2802-4834-a6ca-6f598ce3cdf7_6dbd2209-9d14-4c76-b92b-fcb00e835fe1",
  "createdDateTime": "2024-03-26T19:56:00.6320729Z",
}

Le package d’accès a désormais un rôle de ressource, qui est l’appartenance au groupe. Le rôle est attribué à tout utilisateur disposant du package d’accès.

Étape 1.7 : Créer une stratégie de package d’accès

Maintenant que vous avez créé le package d’accès et ajouté des ressources et des rôles, vous pouvez décider qui peut y accéder en créant une stratégie de package d’accès. Dans ce tutoriel, vous activez le compte Requestor1 que vous avez créé pour demander l’accès aux ressources dans le package d’accès. Pour cette tâche, vous avez besoin des valeurs suivantes :

  • id du package d’accès pour la valeur de la propriété accessPackageId
  • id du compte d’utilisateur Requestor1 pour la valeur de la propriété id dans allowedRequestors

La valeur de la propriété durationInDays permet au compte Requestor1 d’accéder aux ressources du package d’accès pendant jusqu’à 30 jours. Enregistrez la valeur de la propriété id qui est retournée pour l’utiliser plus loin dans ce didacticiel.

Demande

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentPolicies
Content-type: application/json

{
  "accessPackageId": "88203d16-0e31-41d4-87b2-dd402f1435e9",
  "displayName": "Specific users",
  "description": "Specific users can request assignment",
  "accessReviewSettings": null,
  "durationInDays": 30,
  "requestorSettings": {
    "scopeType": "SpecificDirectorySubjects",
    "acceptRequests": true,
    "allowedRequestors": [
       {
         "@odata.type": "#microsoft.graph.singleUser",
         "isBackup": false,
         "id": "007d1c7e-7fa8-4e33-b678-5e437acdcddc",
         "description": "Requestor1"
       }
    ]
  },
  "requestApprovalSettings": {
    "isApprovalRequired": false,
    "isApprovalRequiredForExtension": false,
    "isRequestorJustificationRequired": false,
    "approvalMode": "NoApproval",
    "approvalStages": []
  }
}

Réponse

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#accessPackageAssignmentPolicies/$entity",
  "id": "db440482-1210-4a60-9b55-3ac7a72f63ba",
  "accessPackageId": "88203d16-0e31-41d4-87b2-dd402f1435e9",
  "displayName": "Specific users",
  "description": "Specific users can request assignment",
  "canExtend": false,
  "durationInDays": 30,
  "expirationDateTime": null,
  "createdBy": "admin@contoso.com",
  "createdDateTime": "2020-06-29T19:47:44.7399675Z",
  "modifiedBy": "admin@contoso.com",
  "modifiedDateTime": "2020-06-29T19:47:44.7555489Z",
  "accessReviewSettings": null,
  "requestorSettings": {
    "scopeType": "SpecificDirectorySubjects",
    "acceptRequests": true,
    "allowedRequestors": [
      {
        "@odata.type": "#microsoft.graph.singleUser",
        "isBackup": false,
        "id": "007d1c7e-7fa8-4e33-b678-5e437acdcddc",
        "description": "Requestor1"
      }
    ]
  },
  "requestApprovalSettings": {
    "isApprovalRequired": false,
    "isApprovalRequiredForExtension": false,
    "isRequestorJustificationRequired": false,
    "approvalMode": "NoApproval",
    "approvalStages": []
  }
}

Étape 2 : Demander l’accès

Dans cette étape, le compte d’utilisateur Requestor1 demande l’accès aux ressources dans le package d’accès.

Pour demander l’accès au package d’accès, vous devez fournir les valeurs suivantes :

  • ID du compte d’utilisateur Requestor1 que vous avez créé pour la valeur de la propriété targetId
  • id de la stratégie d’affectation pour la valeur de la propriété assignmentPolicyId
  • id du package d’accès pour la valeur de la propriété accessPackageId

Dans la réponse, le status est Accepted et l’état est Submitted. Enregistrez la valeur de la propriété id retournée à case activée le status de la requête ultérieurement.

Ouvrez une nouvelle session de navigateur anonyme et connectez-vous en tant que Requestor1 afin de ne pas interrompre votre session administrateur actuelle. Vous pouvez également vous déconnecter de Graph Explorer et vous connecter en tant que Requestor1.

Demande

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentRequests
Content-type: application/json

{
  "requestType": "UserAdd",
  "accessPackageAssignment":{
     "targetId":"007d1c7e-7fa8-4e33-b678-5e437acdcddc",
     "assignmentPolicyId":"db440482-1210-4a60-9b55-3ac7a72f63ba",
     "accessPackageId":"88203d16-0e31-41d4-87b2-dd402f1435e9"
  }
}

Réponse

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#accessPackageAssignmentRequests/$entity",
    "createdDateTime": null,
    "completedDate": null,
    "id": "a6bb6942-3ae1-4259-9908-0133aaee9377",
    "requestType": "UserAdd",
    "requestState": "Submitted",
    "requestStatus": "Accepted",
    "isValidationOnly": false,
    "expirationDateTime": null,
    "justification": null
}

Déconnectez-vous et fermez la session anonyme.

Étape 3 : Vérifier que l’accès est attribué

Dans cette étape, vérifiez que le package d’accès est affecté au compte d’utilisateur Requestor1 et qu’il est membre du groupe Ressources marketing . Revenez à la session administrateur dans Graph Explorer.

Étape 3.1 : Obtenir le status de la demande

Utilisez la valeur de la propriété id de la requête pour obtenir son status actuel. Dans la réponse, vous voyez que le status est remplacé par Rempli et que l’état est remplacé par Livré.

Demande

GET https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentRequests/a6bb6942-3ae1-4259-9908-0133aaee9377

Réponse

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#accessPackageAssignmentRequests/$entity",
  "createdDateTime": "2020-06-29T20:24:24.683Z",
  "completedDate": "2020-06-29T20:24:47.937Z",
  "id": "a6bb6942-3ae1-4259-9908-0133aaee9377",
  "requestType": "UserAdd",
  "requestState": "Delivered",
  "requestStatus": "FulfilledNotificationTriggered",
  "isValidationOnly": false,
  "expirationDateTime": null,
  "justification": null
}

Étape 3.2 : Obtenir des affectations de package d’accès

Utilisez l’ID de la stratégie de package d’accès que vous avez créée pour voir que les ressources sont affectées au compte d’utilisateur Requestor1 .

Demande

GET https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignments?$filter=accessPackageAssignmentPolicy/Id eq 'db440482-1210-4a60-9b55-3ac7a72f63ba'&$expand=target,accessPackageAssignmentResourceRoles

Réponse

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#accessPackageAssignments",
  "value": [
    {
      "id": "a6bb6942-3ae1-4259-9908-0133aaee9377",
      "catalogId": "cec5d6ab-c75d-47c0-9c1c-92e89f66e384",
      "accessPackageId": "88203d16-0e31-41d4-87b2-dd402f1435e9",
      "assignmentPolicyId": "db440482-1210-4a60-9b55-3ac7a72f63ba",
      "targetId": "2bc42425-6dc5-4f2a-9ebb-7a7464481eb0",
      "assignmentStatus": "Delivered",
      "assignmentState": "Delivered",
      "isExtended": false,
      "expiredDateTime": null,
      "target": {
         "id": "8586ddc8-0ff7-4c24-9c79-f192bc3566e3",
         "objectId": "2bc42425-6dc5-4f2a-9ebb-7a7464481eb0"
      },
      "accessPackageAssignmentResourceRoles": [
         {
            "id": "bdb7e0a0-a927-42ab-bf30-c5b5533dc54a",
            "originSystem": "AadGroup",
            "status": "Fulfilled"
         }
      ]
    }
  ]
}

Étape 3.3 : Obtenir les membres du groupe

Une fois la demande accordée, utilisez l’ID que vous avez enregistré pour le groupe ressources marketing pour voir que le compte d’utilisateur Requestor1 y est ajouté.

Demande

GET https://graph.microsoft.com/v1.0/groups/f4892fac-e81c-4712-bdf2-a4450008a4b0/members

Réponse :

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#directoryObjects",
  "value": [
    {
      "@odata.type": "#microsoft.graph.user",
      "id": "007d1c7e-7fa8-4e33-b678-5e437acdcddc",
      "deletedDateTime": null,
      "accountEnabled": true,
      "ageGroup": null,
      "businessPhones": [],
      "city": null,
      "createdDateTime": "2020-06-23T18:43:24Z",
      "creationType": null,
      "companyName": null,
      "consentProvidedForMinor": null,
      "country": null,
      "department": null,
      "displayName": "Requestor1",
      "employeeId": null,
      "faxNumber": null,
      "givenName": null,
      "imAddresses": [],
      "infoCatalogs": [],
      "isResourceAccount": null,
      "jobTitle": null,
      "legalAgeGroupClassification": null,
      "mail": null,
      "mailNickname": "Requestor1"
    }
  ]
}

Étape 4 : Nettoyer les ressources

Supprimer une attribution de package d’accès

Vous devez supprimer toutes les affectations au package d’accès avant de pouvoir le supprimer. Utilisez l’ID de la demande d’affectation que vous avez enregistrée précédemment pour la supprimer.

Supprimez toutes les affectations au package d’accès avant de le supprimer. Utilisez l’ID de la demande d’affectation que vous avez enregistrée précédemment pour la supprimer.

POST https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentRequests
Content-type: application/json

{
  "requestType": "AdminRemove",
  "accessPackageAssignment":{
     "id": "a6bb6942-3ae1-4259-9908-0133aaee9377"
  }
}

Réponse

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#accessPackageAssignmentRequests/$entity",
    "createdDateTime": null,
    "completedDate": null,
    "id": "78eaee8c-e6cf-48c9-8f99-aae44c35e379",
    "requestType": "AdminRemove",
    "requestState": "Submitted",
    "requestStatus": "Accepted",
    "isValidationOnly": false,
    "expirationDateTime": null,
    "justification": null
}

Supprimer la stratégie d’attribution de package d’accès

Utilisez l’ID de la stratégie d’affectation que vous avez enregistrée précédemment pour la supprimer. Assurez-vous que toutes les affectations sont d’abord supprimées. La requête retourne un code de réponse 204 No Content .

DELETE https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackageAssignmentPolicies/6c1f65ec-8c25-4a45-83c2-a1de2a6d0e9f

Supprimer le package d’accès

Utilisez l’ID du package d’accès que vous avez enregistré précédemment pour le supprimer. La requête retourne un code de réponse 204 No Content .

Demande

DELETE https://graph.microsoft.com/beta/identityGovernance/entitlementManagement/accessPackages/cf54c6ca-d717-49bc-babe-d140d035dfdd

Conclusion

Dans ce tutoriel, une ressource de campagne marketing est définie comme l’appartenance à un seul groupe qui peut accéder à d’autres ressources. Il peut également s’agir d’une collection de groupes, d’applications ou de sites SharePoint Online.