Passer en revue l’accès aux groupes de sécurité à l’aide des API de révision d’accès
Article
L’API révisions d’accès dans Microsoft Graph permet aux organisations d’auditer et d’attester de l’accès que les identités (également appelées principaux) sont affectées aux ressources dans le organization. Vous pouvez utiliser des groupes de sécurité pour gérer efficacement l’accès aux ressources de votre organization. Par exemple, l’accès à un site SharePoint qui contient des playbooks marketing. Et à l’aide de l’API de révisions d’accès, les organisations peuvent régulièrement attester des principaux qui ont accès à ces groupes et, par extension, des ressources dans le organization.
Dans ce tutoriel, vous apprenez à effectuer les opérations suivantes :
Créez une révision d’accès périodique des appartenances aux groupes de sécurité.
Attestez vous-même de la nécessité de conserver l’accès à un groupe.
Configuration requise
Pour suivre ce didacticiel, vous avez besoin des ressources et privilèges suivants :
Un locataire Microsoft Entra opérationnel avec une licence Microsoft Entra ID P2 ou Gouvernance Microsoft Entra ID activée.
Deux invités de test et un groupe de sécurité de test dans votre locataire. Les invités doivent être membres du groupe et le groupe doit avoir au moins un propriétaire.
Connectez-vous à un client API tel que Graph Explorer d’appeler Microsoft Graph avec un compte qui a au moins le rôle Administrateur de gouvernance des identités.
[Facultatif] Ouvrez une nouvelle fenêtre de navigateur incognito, anonyme ou InPrivate . Vous vous connectez plus loin dans ce tutoriel.
Accordez-vous les autorisations déléguées suivantes : AccessReview.ReadWrite.All.
Remarque
Examen des groupes régis par PIM assigner uniquement les propriétaires actifs en tant que réviseurs. Les propriétaires éligibles ne sont pas inclus. Au moins un réviseur de secours est requis pour la révision d’accès des groupes régis par PIM. S’il n’y a aucun propriétaire actif au début de la révision, les réviseurs de secours se voient attribuer la révision.
Étape 1 : Créer une révision d’accès pour le groupe de sécurité
Demande
Dans cet appel, remplacez les valeurs suivantes :
eb75ccd2-59ef-48b7-8f76-cc3f33f899f4 par l’ID du groupe de sécurité.
Valeur de startDate avec la date du jour et valeur de endDate avec une date cinq jours à partir de la date de début.
La révision d’accès a les paramètres suivants :
Il s’agit d’une révision auto-attestée comme déduit lorsque vous ne spécifiez pas de valeur pour la propriété réviseurs . Par conséquent, chaque membre du groupe témoigne lui-même de son besoin de conserver l’accès au groupe.
L’étendue de la révision est à la fois les membres directs et transitifs du groupe.
Le réviseur doit fournir une justification de la raison pour laquelle il doit conserver l’accès au groupe.
La décision par défaut est Deny lorsque les réviseurs ne répondent pas à la demande de révision d’accès avant l’expiration du instance. La Deny décision supprime les membres du groupe du groupe.
Il s’agit d’une révision d’accès unique qui se termine au bout de cinq jours. Par conséquent, une fois l’accès accordé, l’utilisateur n’a pas besoin de s’auto-attester à nouveau pendant la période de révision d’accès.
Les principaux qui sont définis dans l’étendue de la révision reçoivent des Notifications par e-mail et des rappels les invitant à attester eux-mêmes de leur besoin de maintenir l’accès.
POST https://graph.microsoft.com/v1.0/identityGovernance/accessReviews/definitions
Content-type: application/json
{
"displayName": "One-time self-review for members of Building security",
"descriptionForAdmins": "One-time self-review for members of Building security",
"descriptionForReviewers": "One-time self-review for members of Building security",
"scope": {
"query": "/groups/eb75ccd2-59ef-48b7-8f76-cc3f33f899f4/transitiveMembers",
"queryType": "MicrosoftGraph"
},
"instanceEnumerationScope": {
"query": "/groups/eb75ccd2-59ef-48b7-8f76-cc3f33f899f4",
"queryType": "MicrosoftGraph"
},
"settings": {
"mailNotificationsEnabled": true,
"reminderNotificationsEnabled": true,
"justificationRequiredOnApproval": true,
"defaultDecisionEnabled": true,
"defaultDecision": "Deny",
"instanceDurationInDays": 5,
"autoApplyDecisionsEnabled": true,
"recommendationsEnabled": true,
"recurrence": {
"pattern": null,
"range": {
"type": "numbered",
"numberOfOccurrences": 0,
"recurrenceTimeZone": null,
"startDate": "2024-03-21",
"endDate": "2024-03-30"
}
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AccessReviewScheduleDefinition
{
DisplayName = "One-time self-review for members of Building security",
DescriptionForAdmins = "One-time self-review for members of Building security",
DescriptionForReviewers = "One-time self-review for members of Building security",
Scope = new AccessReviewScope
{
AdditionalData = new Dictionary<string, object>
{
{
"query" , "/groups/eb75ccd2-59ef-48b7-8f76-cc3f33f899f4/transitiveMembers"
},
{
"queryType" , "MicrosoftGraph"
},
},
},
InstanceEnumerationScope = new AccessReviewScope
{
AdditionalData = new Dictionary<string, object>
{
{
"query" , "/groups/eb75ccd2-59ef-48b7-8f76-cc3f33f899f4"
},
{
"queryType" , "MicrosoftGraph"
},
},
},
Settings = new AccessReviewScheduleSettings
{
MailNotificationsEnabled = true,
ReminderNotificationsEnabled = true,
JustificationRequiredOnApproval = true,
DefaultDecisionEnabled = true,
DefaultDecision = "Deny",
InstanceDurationInDays = 5,
AutoApplyDecisionsEnabled = true,
RecommendationsEnabled = true,
Recurrence = new PatternedRecurrence
{
Pattern = null,
Range = new RecurrenceRange
{
Type = RecurrenceRangeType.Numbered,
NumberOfOccurrences = 0,
RecurrenceTimeZone = null,
StartDate = new Date(DateTime.Parse("2024-03-21")),
EndDate = new Date(DateTime.Parse("2024-03-30")),
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.IdentityGovernance.AccessReviews.Definitions.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessReviewScheduleDefinition accessReviewScheduleDefinition = new AccessReviewScheduleDefinition();
accessReviewScheduleDefinition.setDisplayName("One-time self-review for members of Building security");
accessReviewScheduleDefinition.setDescriptionForAdmins("One-time self-review for members of Building security");
accessReviewScheduleDefinition.setDescriptionForReviewers("One-time self-review for members of Building security");
AccessReviewScope scope = new AccessReviewScope();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("query", "/groups/eb75ccd2-59ef-48b7-8f76-cc3f33f899f4/transitiveMembers");
additionalData.put("queryType", "MicrosoftGraph");
scope.setAdditionalData(additionalData);
accessReviewScheduleDefinition.setScope(scope);
AccessReviewScope instanceEnumerationScope = new AccessReviewScope();
HashMap<String, Object> additionalData1 = new HashMap<String, Object>();
additionalData1.put("query", "/groups/eb75ccd2-59ef-48b7-8f76-cc3f33f899f4");
additionalData1.put("queryType", "MicrosoftGraph");
instanceEnumerationScope.setAdditionalData(additionalData1);
accessReviewScheduleDefinition.setInstanceEnumerationScope(instanceEnumerationScope);
AccessReviewScheduleSettings settings = new AccessReviewScheduleSettings();
settings.setMailNotificationsEnabled(true);
settings.setReminderNotificationsEnabled(true);
settings.setJustificationRequiredOnApproval(true);
settings.setDefaultDecisionEnabled(true);
settings.setDefaultDecision("Deny");
settings.setInstanceDurationInDays(5);
settings.setAutoApplyDecisionsEnabled(true);
settings.setRecommendationsEnabled(true);
PatternedRecurrence recurrence = new PatternedRecurrence();
recurrence.setPattern(null);
RecurrenceRange range = new RecurrenceRange();
range.setType(RecurrenceRangeType.Numbered);
range.setNumberOfOccurrences(0);
range.setRecurrenceTimeZone(null);
LocalDate startDate = LocalDate.parse("2024-03-21");
range.setStartDate(startDate);
LocalDate endDate = LocalDate.parse("2024-03-30");
range.setEndDate(endDate);
recurrence.setRange(range);
settings.setRecurrence(recurrence);
accessReviewScheduleDefinition.setSettings(settings);
AccessReviewScheduleDefinition result = graphClient.identityGovernance().accessReviews().definitions().post(accessReviewScheduleDefinition);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\AccessReviewScheduleDefinition;
use Microsoft\Graph\Generated\Models\AccessReviewScope;
use Microsoft\Graph\Generated\Models\AccessReviewScheduleSettings;
use Microsoft\Graph\Generated\Models\PatternedRecurrence;
use Microsoft\Graph\Generated\Models\RecurrenceRange;
use Microsoft\Graph\Generated\Models\RecurrenceRangeType;
use Microsoft\Kiota\Abstractions\Types\Date;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AccessReviewScheduleDefinition();
$requestBody->setDisplayName('One-time self-review for members of Building security');
$requestBody->setDescriptionForAdmins('One-time self-review for members of Building security');
$requestBody->setDescriptionForReviewers('One-time self-review for members of Building security');
$scope = new AccessReviewScope();
$additionalData = [
'query' => '/groups/eb75ccd2-59ef-48b7-8f76-cc3f33f899f4/transitiveMembers',
'queryType' => 'MicrosoftGraph',
];
$scope->setAdditionalData($additionalData);
$requestBody->setScope($scope);
$instanceEnumerationScope = new AccessReviewScope();
$additionalData = [
'query' => '/groups/eb75ccd2-59ef-48b7-8f76-cc3f33f899f4',
'queryType' => 'MicrosoftGraph',
];
$instanceEnumerationScope->setAdditionalData($additionalData);
$requestBody->setInstanceEnumerationScope($instanceEnumerationScope);
$settings = new AccessReviewScheduleSettings();
$settings->setMailNotificationsEnabled(true);
$settings->setReminderNotificationsEnabled(true);
$settings->setJustificationRequiredOnApproval(true);
$settings->setDefaultDecisionEnabled(true);
$settings->setDefaultDecision('Deny');
$settings->setInstanceDurationInDays(5);
$settings->setAutoApplyDecisionsEnabled(true);
$settings->setRecommendationsEnabled(true);
$settingsRecurrence = new PatternedRecurrence();
$settingsRecurrence->setPattern(null);
$settingsRecurrenceRange = new RecurrenceRange();
$settingsRecurrenceRange->setType(new RecurrenceRangeType('numbered'));
$settingsRecurrenceRange->setNumberOfOccurrences(0);
$settingsRecurrenceRange->setRecurrenceTimeZone(null);
$settingsRecurrenceRange->setStartDate(new Date('2024-03-21'));
$settingsRecurrenceRange->setEndDate(new Date('2024-03-30'));
$settingsRecurrence->setRange($settingsRecurrenceRange);
$settings->setRecurrence($settingsRecurrence);
$requestBody->setSettings($settings);
$result = $graphServiceClient->identityGovernance()->accessReviews()->definitions()->post($requestBody)->wait();
La status de la révision d’accès est NotStarted. Vous pouvez récupérer la révision d’accès (GEThttps://graph.microsoft.com/v1.0/identityGovernance/accessReviews/definitions/2d56c364-0695-4ec6-8b92-4c1db7c80f1b) pour surveiller la status et, lorsque son status est InProgress, des instances ont été créées pour la révision d’accès et les décisions peuvent être publiées. Vous pouvez également récupérer la révision d’accès pour afficher ses paramètres complets.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/accessReviews/definitions/$entity",
"id": "2d56c364-0695-4ec6-8b92-4c1db7c80f1b",
"displayName": "One-time self-review for members of Building security",
"createdDateTime": null,
"lastModifiedDateTime": null,
"status": "NotStarted",
"descriptionForAdmins": "One-time self-review for members of Building security",
"descriptionForReviewers": "One-time self-review for members of Building security",
"scope": {},
"instanceEnumerationScope": {},
"reviewers": [],
"fallbackReviewers": [],
"settings": {
"mailNotificationsEnabled": true,
"reminderNotificationsEnabled": true,
"justificationRequiredOnApproval": true,
"defaultDecisionEnabled": true,
"defaultDecision": "Deny",
"instanceDurationInDays": 5,
"autoApplyDecisionsEnabled": true,
"recommendationsEnabled": true,
"recommendationLookBackDuration": null,
"decisionHistoriesForReviewersEnabled": false,
"recurrence": {
"pattern": null,
"range": {
"type": "numbered",
"numberOfOccurrences": 0,
"recurrenceTimeZone": null,
"startDate": "2024-03-21",
"endDate": "2024-03-30"
}
},
"applyActions": [],
"recommendationInsightSettings": []
},
"stageSettings": [],
"additionalNotificationRecipients": []
}
Étape 2 : Répertorier les instances de la révision d’accès
Une fois que le status de la révision d’accès est marqué comme InProgress, exécutez la requête suivante pour répertorier toutes les instances de la définition de révision d’accès. Étant donné que vous avez créé une révision d’accès unique à l’étape précédente, la demande ne retourne qu’un seul instance avec un ID comme l’ID de la définition de planification.
GET https://graph.microsoft.com/v1.0/identityGovernance/accessReviews/definitions/2d56c364-0695-4ec6-8b92-4c1db7c80f1b/instances
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.IdentityGovernance.AccessReviews.Definitions["{accessReviewScheduleDefinition-id}"].Instances.GetAsync();
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
instances, err := graphClient.IdentityGovernance().AccessReviews().Definitions().ByAccessReviewScheduleDefinitionId("accessReviewScheduleDefinition-id").Instances().Get(context.Background(), nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessReviewInstanceCollectionResponse result = graphClient.identityGovernance().accessReviews().definitions().byAccessReviewScheduleDefinitionId("{accessReviewScheduleDefinition-id}").instances().get();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
result = await graph_client.identity_governance.access_reviews.definitions.by_access_review_schedule_definition_id('accessReviewScheduleDefinition-id').instances.get()
Dans cette réponse, la status de l’instance est InProgress que startDateTime est passé et endDateTime est dans le futur. Si startDateTime est à l’avenir, le status est NotStarted. En revanche, si endDateTime est dans le passé, le status est Completed.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
Étape 3 : Vérifier qui a été contacté pour la révision
Vous pouvez confirmer que tous les membres du groupe de sécurité ont été contactés pour publier leurs décisions de révision pour cette instance de la révision d’accès.
GET https://graph.microsoft.com/v1.0/identityGovernance/accessReviews/definitions/2d56c364-0695-4ec6-8b92-4c1db7c80f1b/instances/2d56c364-0695-4ec6-8b92-4c1db7c80f1b/contactedReviewers
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.IdentityGovernance.AccessReviews.Definitions["{accessReviewScheduleDefinition-id}"].Instances["{accessReviewInstance-id}"].ContactedReviewers.GetAsync();
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
contactedReviewers, err := graphClient.IdentityGovernance().AccessReviews().Definitions().ByAccessReviewScheduleDefinitionId("accessReviewScheduleDefinition-id").Instances().ByAccessReviewInstanceId("accessReviewInstance-id").ContactedReviewers().Get(context.Background(), nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessReviewReviewerCollectionResponse result = graphClient.identityGovernance().accessReviews().definitions().byAccessReviewScheduleDefinitionId("{accessReviewScheduleDefinition-id}").instances().byAccessReviewInstanceId("{accessReviewInstance-id}").contactedReviewers().get();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
result = await graph_client.identity_governance.access_reviews.definitions.by_access_review_schedule_definition_id('accessReviewScheduleDefinition-id').instances.by_access_review_instance_id('accessReviewInstance-id').contacted_reviewers.get()
GET https://graph.microsoft.com/v1.0/identityGovernance/accessReviews/definitions/2d56c364-0695-4ec6-8b92-4c1db7c80f1b/instances/2d56c364-0695-4ec6-8b92-4c1db7c80f1b/decisions
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.IdentityGovernance.AccessReviews.Definitions["{accessReviewScheduleDefinition-id}"].Instances["{accessReviewInstance-id}"].Decisions.GetAsync();
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
decisions, err := graphClient.IdentityGovernance().AccessReviews().Definitions().ByAccessReviewScheduleDefinitionId("accessReviewScheduleDefinition-id").Instances().ByAccessReviewInstanceId("accessReviewInstance-id").Decisions().Get(context.Background(), nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessReviewInstanceDecisionItemCollectionResponse result = graphClient.identityGovernance().accessReviews().definitions().byAccessReviewScheduleDefinitionId("{accessReviewScheduleDefinition-id}").instances().byAccessReviewInstanceId("{accessReviewInstance-id}").decisions().get();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
result = await graph_client.identity_governance.access_reviews.definitions.by_access_review_schedule_definition_id('accessReviewScheduleDefinition-id').instances.by_access_review_instance_id('accessReviewInstance-id').decisions.get()
La réponse suivante présente les décisions prises sur la instance de l’examen. Étant donné que le groupe de sécurité a deux membres, deux éléments de décision sont attendus.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
À partir de l’appel, la propriété de décision a la valeur de NotReviewed , car les membres du groupe n’ont pas terminé leur auto-attestation. L’étape suivante montre comment chaque membre peut s’auto-attester de son besoin de révision d’accès.
Étape 5 : Auto-attester d’une décision d’accès en attente
Vous avez configuré la révision d’accès comme auto-attestant. Cette configuration nécessite que les deux membres du groupe témoignent eux-mêmes de leur besoin de conserver leur accès au groupe.
Remarque
Effectuez cette étape en tant que l’un des deux membres du groupe de sécurité.
Dans cette étape, vous répertoriez vos révisions d’accès en attente, puis effectuez le processus d’auto-attestation. Vous pouvez effectuer cette étape de l’une des deux manières suivantes : à l’aide de l’API ou du portail Mon accès. L’autre réviseur ne s’auto-atteste pas et, à la place, les décisions par défaut sont appliquées à sa révision d’accès.
Démarrez une nouvelle session de navigateur de navigation incognito, anonyme ou InPrivate , puis connectez-vous en tant que l’un des deux membres du groupe de sécurité. Ce faisant, vous n’interrompez pas votre session administrateur actuelle. Vous pouvez également interrompre votre session d’administrateur actuelle en vous déconnectez de l’Explorer Graph et en vous reconnectant en tant que l’un des deux membres du groupe.
Méthode 1 : Utiliser l’API de révisions d’accès pour auto-réviser l’accès en attente
Répertorier les éléments de décision des révisions d’accès
Demande
GET https://graph.microsoft.com/v1.0/identitygovernance/accessReviews/definitions/2d56c364-0695-4ec6-8b92-4c1db7c80f1b/instances/2d56c364-0695-4ec6-8b92-4c1db7c80f1b/decisions/filterByCurrentUser(on='reviewer')
Réponse
À partir de la réponse, vous (Adele Vance) avez une révision d’accès en attente (la décision est NotReviewed) à attester automatiquement. Les propriétés du principal et de la ressource indiquent le principal auquel la décision s’applique et la ressource à laquelle l’accès est en cours d’examen. Dans ce cas, Adele Vance et le groupe de sécurité respectivement.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
Pour terminer la révision d’accès, Adele Vance confirme la nécessité de conserver l’accès au groupe de sécurité.
La requête retourne un code de réponse 204 No Content .
PATCH https://graph.microsoft.com/v1.0/identitygovernance/accessReviews/definitions/2d56c364-0695-4ec6-8b92-4c1db7c80f1b/instances/2d56c364-0695-4ec6-8b92-4c1db7c80f1b/decisions/c7de8fba-4d6a-4fab-a659-62ff0c02643d
{
"decision": "Approve",
"justification": "As the assistant security manager, I still need access to the building security group."
}
Vérifier les décisions
Pour vérifier les décisions que vous avez enregistrées pour votre révision d’accès, répertoriez vos éléments de décision de révision d’accès. Bien que la période de révision d’accès n’ait pas expiré ni les décisions appliquées, le résultat applyResult est marqué comme New et vous êtes autorisé à modifier la décision.
Vous pouvez maintenant vous déconnecter et quitter la session de navigateur incognito.
Méthode 2 : Utiliser le portail Mon accès
Vous pouvez également case activée vos instances de révision d’accès en attente via le portail Mon accès.
Répertoriez les révisions d’accès en attente. L’utilisateur peut suivre l’une des deux façons d’y accéder :
Option 1 : Sélectionnez le bouton Vérifier l’accès dans la notification par e-mail qu’ils ont reçue dans leur boîte de réception. La notification par e-mail est similaire à la capture d’écran suivante. Ce bouton est un lien direct vers la révision d’accès en attente.
Option 2 : accédez au portail Mon accès . Sélectionnez le menu Révisions d’accès , puis sélectionnez l’onglet Groupes et applications .
Dans la liste des révisions d’accès, sélectionnez la révision d’accès pour laquelle vous souhaitez publier la décision. Sélectionnez Oui pour publier la décision que vous avez toujours besoin d’accéder à Sécurité du bâtiment. Entrez une raison, puis sélectionnez Envoyer.
Vous pouvez maintenant vous déconnecter et quitter la session de navigateur incognito.
Étape 6 : Confirmer les décisions et les status de la révision d’accès
De retour dans la session de navigateur main où vous êtes toujours connecté avec des privilèges d’administrateur, répétez l’étape 4 pour voir que la propriété de décision pour Adele Vance est maintenant Approve. Lorsque la révision d’accès se termine ou expire, la décision par défaut de Deny est enregistrée pour Alex Wilber. Les décisions sont ensuite appliquées automatiquement, car autoApplyDecisionsEnabled a été défini true sur et la période de révision d’accès instance terminée. Adele conserve l’accès au groupe de sécurité tandis qu’Alex est automatiquement supprimé du groupe.
Félicitations ! Vous avez créé une révision d’accès et vous vous êtes auto-attesté de votre besoin de maintenir l’accès. Vous ne vous êtes auto-attesté qu’une seule fois et conservez votre accès jusqu’à ce qu’il soit supprimé par une Deny décision d’un autre instance de révision d’accès ou par le biais d’un autre processus interne.
Étape 7 : nettoyer les ressources
Dans cet appel, vous supprimez la définition de révision d’accès. Étant donné que la définition de la planification de révision d’accès est le blueprint de la révision d’accès, la suppression de la définition supprime les paramètres, instances et décisions associés.
La requête retourne un code de réponse 204 No Content .
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.IdentityGovernance.AccessReviews.Definitions["{accessReviewScheduleDefinition-id}"].DeleteAsync();
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphClient.IdentityGovernance().AccessReviews().Definitions().ByAccessReviewScheduleDefinitionId("accessReviewScheduleDefinition-id").Delete(context.Background(), nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
graphClient.identityGovernance().accessReviews().definitions().byAccessReviewScheduleDefinitionId("{accessReviewScheduleDefinition-id}").delete();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$graphServiceClient->identityGovernance()->accessReviews()->definitions()->byAccessReviewScheduleDefinitionId('accessReviewScheduleDefinition-id')->delete()->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
await graph_client.identity_governance.access_reviews.definitions.by_access_review_schedule_definition_id('accessReviewScheduleDefinition-id').delete()
Vous avez créé une révision d’accès dans laquelle les principaux ont auto-attesté de leur besoin de conserver leur accès à une ressource, dans ce cas, le groupe de sécurité Building .
Ce tutoriel a montré l’un des scénarios de l’API Microsoft Entra révisions d’accès. L’API révisions d’accès prend en charge différents scénarios par le biais d’une combinaison de ressources, de principaux et de réviseurs en fonction de vos besoins en matière d’attestation d’accès. Pour plus d’informations, consultez l’API révisions d’accès.