Tutoriel : Utiliser l’API Privileged Identity Management (PIM) pour attribuer des rôles Azure AD

L’API PIM Microsoft Graph permet aux organisations de gérer l’accès privilégié aux ressources dans Azure Active Directory (Azure AD). Il permet également de gérer les risques liés à l’accès privilégié en limitant le nombre d’accès actifs, en gérant l’étendue de l’accès et en fournissant un journal auditable de l’accès privilégié.

Dans ce didacticiel, une société fictive appelée Contoso Limited souhaite que son support informatique gère le cycle de vie de l’accès des employés. L’entreprise a identifié le rôle Administrateur d’utilisateurs Azure AD comme rôle privilégié approprié requis par le support informatique et utilisera l’API PIM pour attribuer le rôle.

Vous allez créer un groupe de sécurité assignable au rôle pour le support technique informatique et, à l’aide de l’API PIM, affecter l’éligibilité du groupe de sécurité au rôle Administrateur d’utilisateurs. En attribuant le rôle éligible à un groupe de sécurité, Contoso dispose d’un moyen plus efficace de gérer l’accès administrateur aux ressources telles que les rôles Azure AD. Par exemple :

  • La suppression ou l’ajout de membres de groupe existants supprime également les administrateurs.
  • Ajout de rôles supplémentaires aux membres du groupe au lieu d’attribuer des rôles à des utilisateurs individuels.

L’attribution d’un droit d’éligibilité au lieu d’un privilège d’administrateur utilisateur persistant permet à l’entreprise d’appliquer un accès juste-à-temps, qui accorde des autorisations temporaires pour effectuer les tâches privilégiées. Après avoir défini l’éligibilité au rôle, le membre du groupe éligible active son attribution pour une période temporaire. Tous les enregistrements des activations de rôles seront auditables par l’entreprise.

Notes

Les objets de réponse présentés dans ce didacticiel peuvent être raccourcis pour des raisons de lisibilité.

Conditions préalables

Pour suivre ce didacticiel, vous avez besoin des ressources et privilèges suivants :

  • Un locataire Azure AD opérationnel avec une licence Azure AD Premium P2 ou EMS E5 activée.
  • Connectez-vous à Graph Explorer en tant qu’utilisateur dans un rôle Administrateur général.
    • [Facultatif] Démarrez une nouvelle session de navigateur incognito ou InPrivate, ou démarrez une session dans un navigateur anonyme. Vous vous connecterez plus loin dans ce didacticiel.
  • Les autorisations déléguées suivantes : User.ReadWrite.All, Group.ReadWrite.All, Directory.Read.All, RoleEligibilitySchedule.ReadWrite.Directoryet RoleAssignmentSchedule.ReadWrite.Directory, et RoleManagement.ReadWrite.Directory.
  • Authenticator application installée sur votre téléphone pour inscrire un utilisateur pour l’authentification multifacteur (MFA).

Pour accepter les autorisations requises dans Graph Explorer :

  1. Sélectionnez l’icône des points de suspension horizontaux à droite des détails du compte d’utilisateur, puis sélectionnez Sélectionner les autorisations.

    Sélectionnez les autorisations Microsoft Graph.

  2. Faites défiler la liste des autorisations pour accéder à ces autorisations :

    • Groupe (2), développez, puis sélectionnez Group.ReadWrite.All.
    • Répertoire (4), développez, puis sélectionnez Directory.Read.All.
    • RoleAssignmentSchedule (2), développez, puis sélectionnez RoleAssignmentSchedule.ReadWrite.Directory.
    • RoleEligibilitySchedule (2), développez, puis sélectionnez RoleEligibilitySchedule.ReadWrite.Directory.
    • RoleManagement (3), développez, puis sélectionnez RoleManagement.ReadWrite.Directory.
    • Utilisateur (8), développez, puis sélectionnez User.ReadWrite.All.

    Sélectionnez Accord, puis sélectionnez Accepter pour accepter le consentement des autorisations. Pour les autorisations et RoleAssignmentSchedule.ReadWrite.All les RoleEligibilitySchedule.ReadWrite.Directory autorisations, consentez au nom de votre organisation.

    Consentement aux autorisations Microsoft Graph.

Étape 1 : Créer un utilisateur de test

Créez un utilisateur qui doit réinitialiser son mot de passe lors de la première connexion. À partir de cette étape, enregistrez la valeur de l’ID du nouvel utilisateur à utiliser à l’étape suivante. Après avoir créé l’utilisateur, visitez le Portail Azure et activez l’authentification multifacteur (MFA) pour l’utilisateur. Pour plus d’informations sur l’activation de l’authentification multifacteur, consultez la section Voir aussi .

Demande

POST https://graph.microsoft.com/v1.0/users
Content-Type: application/json

{
    "accountEnabled": true,
    "displayName": "Aline Dupuy",
    "mailNickname": "AlineD",
    "userPrincipalName": "AlineD@Contoso.com",
    "passwordProfile": {
        "forceChangePasswordNextSignIn": true,
        "password": "xWwvJ]6NMw+bWH-d"
    }
}

Réponse

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "@odata.id": "https://graph.microsoft.com/v2/29a4f813-9274-4e1b-858d-0afa98ae66d4/directoryObjects/7146daa8-1b4b-4a66-b2f7-cf593d03c8d2/Microsoft.DirectoryServices.User",
    "id": "7146daa8-1b4b-4a66-b2f7-cf593d03c8d2",
    "displayName": "Aline Dupuy",
    "userPrincipalName": "AlineD@Contoso.com"
}

Étape 2 : Créer un groupe de sécurité auquel un rôle Azure AD peut être attribué

Créez un groupe qui est assignable à un rôle Azure AD. Attribuez-vous en tant que propriétaire du groupe et vous et Aline (l’utilisateur créé à l’étape 1) en tant que membres.

Demande : Créer un groupe assignable à un rôle

Remplacez par 1ed8ac56-4827-4733-8f80-86adc2e67db5 votre ID et 7146daa8-1b4b-4a66-b2f7-cf593d03c8d2 par la valeur de l’ID d’Aline.

POST https://graph.microsoft.com/v1.0/groups
Content-type: application/json

{
    "description": "IT Helpdesk to support Contoso employees",
    "displayName": "IT Helpdesk (User)",
    "mailEnabled": false,
    "mailNickname": "userHelpdesk",
    "securityEnabled": true,
    "isAssignableToRole": true,
    "owners@odata.bind": [
        "https://graph.microsoft.com/v1.0/users/1ed8ac56-4827-4733-8f80-86adc2e67db5"
    ],
    "members@odata.bind": [
        "https://graph.microsoft.com/v1.0/users/1ed8ac56-4827-4733-8f80-86adc2e67db5",
        "https://graph.microsoft.com/v1.0/users/7146daa8-1b4b-4a66-b2f7-cf593d03c8d2"
    ]
}

Réponse

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups/$entity",
    "@odata.id": "https://graph.microsoft.com/v2/29a4f813-9274-4e1b-858d-0afa98ae66d4/directoryObjects/e77cbb23-0ff2-4e18-819c-690f58269752/Microsoft.DirectoryServices.Group",
    "id": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "description": "IT Helpdesk to support Contoso employees",
    "displayName": "IT Helpdesk (User)",
    "groupTypes": [],
    "isAssignableToRole": true,
    "mailEnabled": false,
    "mailNickname": "userHelpdesk",
    "securityEnabled": true,
    "securityIdentifier": "S-1-12-1-3883711267-1310199794-258579585-1385637464",
    "visibility": "Private",
    "onPremisesProvisioningErrors": []
}

Étape 3 : Créer un unifiedRoleEligibilityScheduleRequest

Maintenant que vous disposez d’un groupe de sécurité, attribuez-le comme éligible au rôle Administrateur d’utilisateurs. Dans cette étape :

  • Créez un objet unifiedRoleEligibilityScheduleRequest qui identifie le support technique informatique de groupe (utilisateur) comme éligible pour le rôle Administrateur d’utilisateurs pendant un an. Azure AD étend cette attribution éligible aux membres du groupe, c’est-à-dire vous et Aline.
  • Étendue de l’affectation éligible à l’ensemble de votre locataire. Cela permet à l’administrateur utilisateur d’utiliser ses privilèges contre tous les utilisateurs de votre locataire, à l’exception des utilisateurs disposant de privilèges plus élevés, tels que l’administrateur général.

Demande

Remplacez e77cbb23-0ff2-4e18-819c-690f58269752 par la valeur de l’ID du groupe de sécurité du support technique informatique (utilisateur ). Ce principalId identifie le bénéficiaire de l’éligibilité au rôle Administrateur d’utilisateurs. RoleDefinitionId fe930be7-5e62-47db-91af-98c3a49a38b1 est l’identificateur de modèle global pour le rôle Administrateur d’utilisateurs dans Azure AD.

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleEligibilityScheduleRequests
Content-type: application/json

{
    "action": "AdminAssign",
    "justification": "Assign User Admin eligibility to IT Helpdesk (User) group",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "principalId": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "scheduleInfo": {
        "startDateTime": "2021-07-01T00:00:00Z",
        "expiration": {
            "endDateTime": "2022-06-30T00:00:00Z",
            "type": "AfterDateTime"
        }
    }
}

Réponse

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleEligibilityScheduleRequests/$entity",
    "id": "64a8bd54-4591-4f6a-9c77-3e9cb1fdd29b",
    "status": "Provisioned",
    "createdDateTime": "2021-09-03T20:45:28.3848182Z",
    "completedDateTime": "2021-09-03T20:45:39.1194292Z",
    "action": "AdminAssign",
    "principalId": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "isValidationOnly": false,
    "targetScheduleId": "64a8bd54-4591-4f6a-9c77-3e9cb1fdd29b",
    "justification": "Assign User Admin eligibility to IT Helpdesk (User) group",
    "createdBy": {
        "user": {
            "id": "1ed8ac56-4827-4733-8f80-86adc2e67db5"
        }
    },
    "scheduleInfo": {
        "startDateTime": "2021-09-03T20:45:39.1194292Z",
        "expiration": {
            "type": "afterDateTime",
            "endDateTime": "2022-06-30T00:00:00Z"
        }
    },
    "ticketInfo": {}
}

Étape 4 : Confirmer les attributions de rôles actuelles de l’utilisateur

Bien que les membres du groupe soient désormais éligibles au rôle Administrateur d’utilisateurs, ils ne peuvent toujours pas utiliser le rôle. Cela est dû au fait qu’ils ne sont pas encore en mesure d’activer leur éligibilité. Vous pouvez confirmer en vérifiant les attributions de rôles actuelles de l’utilisateur.

Demande

Dans la requête suivante, remplacez 7146daa8-1b4b-4a66-b2f7-cf593d03c8d2 par la valeur de l’ID d’Aline.

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=principalId eq '7146daa8-1b4b-4a66-b2f7-cf593d03c8d2'

Réponse

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleAssignments",
    "value": []
}

L’objet de réponse vide montre qu’Aline n’a pas de rôles Azure AD existants dans Contoso. Aline active désormais son rôle Administrateur d’utilisateurs éligible pour une durée limitée.

Étape 5 : l’utilisateur active lui-même son affectation éligible

Un ticket d’incident CONTOSO : Security-012345 a été déclenché dans le système de gestion des incidents de Contoso et l’entreprise exige que tous les jetons d’actualisation des employés soient invalidés. En tant que membre du support informatique, Aline est responsable de l’exécution de cette tâche.

Commencez par démarrer l’application Authenticator sur votre téléphone et ouvrez le compte d’Aline Dupuy.

Connectez-vous à Graph Explorer en tant qu’Aline. Vous pouvez utiliser une session incognito ou un navigateur anonyme pour cette étape. Ce faisant, vous n’interromprez pas votre session actuelle en tant qu’utilisateur dans le rôle Administrateur général. Vous pouvez également interrompre votre session actuelle en vous déconnectant de Graph Explorer et en vous connectant en tant qu’Aline.

Connecté en tant qu’Aline, vous allez d’abord modifier votre mot de passe, car il a été spécifié lors de la création du compte. Ensuite, étant donné que l’administrateur a configuré votre compte pour l’authentification multifacteur, vous êtes invité à configurer votre compte dans l’application Authenticator et à être invité à vous connecter à l’authentification multifacteur. En effet, PIM requiert cette authentification multifacteur pour toutes les attributions de rôles actives.

Après vous être connecté, activez votre rôle Administrateur d’utilisateurs pendant cinq heures.

Demande

Pour activer un rôle, appelez le point de roleAssignmentScheduleRequests terminaison. Dans cette demande, l’action UserActivate vous permet d’activer votre affectation éligible, dans ce cas pendant cinq heures.

  • Pour principalId, fournissez la valeur de votre ID (Aline).
  • RoleDefinitionId est l’ID du rôle auquel vous êtes éligible, dans ce cas, le rôle Administrateur d’utilisateurs.
  • Entrez les détails du système de tickets qui fournit une justification auditable pour l’activation de la demande.
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleRequests
Content-type: application/json

{
    "action": "SelfActivate",
    "principalId": "7146daa8-1b4b-4a66-b2f7-cf593d03c8d2",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "justification": "Need to invalidate all app refresh tokens for Contoso users.",
    "scheduleInfo": {
        "startDateTime": "2021-09-04T15:13:00.000Z",
        "expiration": {
            "type": "AfterDuration",
            "duration": "PT5H"
        }
    },
    "ticketInfo": {
        "ticketNumber": "CONTOSO:Security-012345",
        "ticketSystem": "Contoso ICM"
    }
}

Réponse

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleAssignmentScheduleRequests/$entity",
    "id": "295edd40-4646-40ca-89b8-ab0b46b6f60e",
    "status": "Granted",
    "createdDateTime": "2021-09-03T21:10:49.6670479Z",
    "completedDateTime": "2021-09-04T15:13:00Z",
    "action": "SelfActivate",
    "principalId": "7146daa8-1b4b-4a66-b2f7-cf593d03c8d2",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "isValidationOnly": false,
    "targetScheduleId": "295edd40-4646-40ca-89b8-ab0b46b6f60e",
    "justification": "Need to invalidate all app refresh tokens for Contoso users.",
    "createdBy": {
        "user": {
            "id": "7146daa8-1b4b-4a66-b2f7-cf593d03c8d2"
        }
    },
    "scheduleInfo": {
        "startDateTime": "2021-09-04T15:13:00Z",
        "expiration": {
            "type": "afterDuration",
            "endDateTime": null,
            "duration": "PT5H"
        }
    },
    "ticketInfo": {
        "ticketNumber": "CONTOSO:Security-012345",
        "ticketSystem": "Contoso ICM"
    }
}

Vous pouvez confirmer votre affectation en exécutant GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleRequests/filterByCurrentUser(on='principal'). L’objet de réponse retourne votre attribution de rôle nouvellement activée avec l’état défini sur Granted. Avec votre nouveau privilège, effectuez toutes les actions autorisées dans les cinq heures pour laquelle votre affectation est active. Cela inclut l’invalidation des jetons d’actualisation de tous les employés. Au bout de cinq heures, l’attribution active expire, mais grâce à votre appartenance au groupe Support informatique (utilisateurs), vous restez éligible au rôle Administrateur d’utilisateurs.

De retour dans la session d’administrateur général, vous avez reçu des notifications de l’attribution éligible et de l’activation du rôle. Cela permet à l’administrateur général de connaître toutes les élévations de privilèges d’administrateur au sein de votre organisation.

Étape 6 : Nettoyer les ressources

Connectez-vous en tant qu’administrateur général et supprimez les ressources suivantes que vous avez créées pour ce didacticiel : la demande d’éligibilité au rôle, le groupe de support informatique (utilisateurs) et l’utilisateur de test (Aline Dupuy).

Révoquer la demande d’éligibilité au rôle

Demande

Remplacez e77cbb23-0ff2-4e18-819c-690f58269752 par l’ID du groupe Support informatique (utilisateurs).

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleEligibilityScheduleRequests
Content-type: application/json

{
    "action": "AdminRemove",
    "principalId": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/"
}

Réponse

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleEligibilityScheduleRequests/$entity",
    "id": "dcd11a1c-300f-4d17-8c7a-523830400ec8",
    "status": "Revoked",
    "action": "AdminRemove",
    "principalId": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/"
}

Supprimer le groupe Support informatique (utilisateurs)

Demande

Remplacez e77cbb23-0ff2-4e18-819c-690f58269752 par l’ID du groupe Support informatique (utilisateurs).

DELETE https://graph.microsoft.com/v1.0/groups/e77cbb23-0ff2-4e18-819c-690f58269752

Réponse

HTTP/1.1 204 No Content

Supprimer l’utilisateur de test

Demande

Remplacez 7146daa8-1b4b-4a66-b2f7-cf593d03c8d2 par la valeur de l’ID d’Aline.

DELETE https://graph.microsoft.com/v1.0/users/7146daa8-1b4b-4a66-b2f7-cf593d03c8d2

Réponse

HTTP/1.1 204 No Content

Voir aussi