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.
Pour écrire des révisions d’accès d’un groupe ou d’une application : Administrateur d’utilisateurs, Administrateur de gouvernance des identités
Pour écrire des révisions d’accès d’un rôle Microsoft Entra : Administrateur de gouvernance des identités, Administrateur de rôle privilégié
Requête HTTP
POST /identityGovernance/accessReviews/historyDefinitions
Nom de la collecte de données d’historique de révision d’accès. Obligatoire.
reviewHistoryPeriodStartDateTime
DateTimeOffset
Horodatage. Les révisions commençant à cette date ou après cette date seront incluses dans les données d’historique récupérées. Obligatoire uniquement si scheduleSettings n’est pas défini.
reviewHistoryPeriodEndDateTime
DateTimeOffset
Horodatage. Les révisions commençant à cette date ou avant seront incluses dans les données d’historique récupérées. Obligatoire uniquement si scheduleSettings n’est pas défini.
Permet de filtrer les révisions qui sont incluses dans les données d’historique extraites. Récupère les révisions dont l’étendue correspond à cette étendue fournie. Obligatoire. Pour plus d’informations, consultez Requêtes d’étendue prises en charge pour accessReviewHistoryDefinition.
Pas encore pris en charge. Paramètres d’une série de définitions d’historique des révisions d’accès périodiques. Obligatoire uniquement si reviewHistoryPeriodStartDateTime ou reviewHistoryPeriodEndDateTime ne sont pas définis.
Requêtes d’étendue prises en charge pour accessReviewHistoryDefinition
La propriété scopes de accessReviewHistoryDefinition est basée sur accessReviewQueryScope, une ressource qui vous permet de configurer différentes ressources dans sa propriété de requête . Ces ressources représentent ensuite l’étendue de la définition de l’historique et dictent le type de données d’historique de révision qui sont incluses dans le fichier CSV téléchargeable qui est généré lors de la création des accessReviewHistoryInstances de la définition de l’historique.
Le $filter paramètre de requête avec l’opérateur contains est pris en charge sur la propriété scope de accessReviewScheduleDefinition. Utilisez le format suivant pour la requête :
Répertorier chaque accessReviewScheduleDefinition sur des groupes individuels (exclut les définitions étendues à tous les groupes Microsoft 365 avec des invités).
/groups/{group id}
Répertorier chaque accessReviewScheduleDefinition sur un groupe spécifique (exclut les définitions étendues à tous les groupes Microsoft 365 avec invités).
./members
Répertoriez chaque accessReviewScheduleDefinition délimité à tous les groupes Microsoft 365 avec des invités.
accessPackageAssignments
Répertoriez chaque accessReviewScheduleDefinition sur un package d’accès.
roleAssignmentScheduleInstances
Répertoriez chaque accessReviewScheduleDefinition pour les principaux affectés à un rôle privilégié.
Le $filter paramètre de requête n’est pas pris en charge sur accessReviewInactiveUserQueryScope ou principalResourceMembershipScope.
Réponse
Si elle réussit, cette méthode renvoie un 201 Created code de réponse et un objet accessReviewHistoryDefinition dans le corps de la réponse.
Exemples
L’exemple suivant montre comment créer une définition d’historique des révisions d’accès limitée aux révisions d’accès sur les packages d’accès et les groupes, s’exécutant entre la date de début du 01/01/2021 et la date de fin du 05/04/2021.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AccessReviewHistoryDefinition
{
DisplayName = "Last quarter's group reviews April 2021",
Decisions = new List<AccessReviewHistoryDecisionFilter?>
{
AccessReviewHistoryDecisionFilter.Approve,
AccessReviewHistoryDecisionFilter.Deny,
AccessReviewHistoryDecisionFilter.DontKnow,
AccessReviewHistoryDecisionFilter.NotReviewed,
AccessReviewHistoryDecisionFilter.NotNotified,
},
ReviewHistoryPeriodStartDateTime = DateTimeOffset.Parse("2021-01-01T00:00:00Z"),
ReviewHistoryPeriodEndDateTime = DateTimeOffset.Parse("2021-04-30T23:59:59Z"),
Scopes = new List<AccessReviewScope>
{
new AccessReviewQueryScope
{
OdataType = "#microsoft.graph.accessReviewQueryScope",
QueryType = "MicrosoftGraph",
Query = "/identityGovernance/accessReviews/definitions?$filter=contains(scope/query, 'accessPackageAssignments')",
QueryRoot = null,
},
new AccessReviewQueryScope
{
OdataType = "#microsoft.graph.accessReviewQueryScope",
QueryType = "MicrosoftGraph",
Query = "/identityGovernance/accessReviews/definitions?$filter=contains(scope/query, '/groups')",
QueryRoot = null,
},
},
};
// 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.HistoryDefinitions.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AccessReviewHistoryDefinition accessReviewHistoryDefinition = new AccessReviewHistoryDefinition();
accessReviewHistoryDefinition.setDisplayName("Last quarter's group reviews April 2021");
LinkedList<AccessReviewHistoryDecisionFilter> decisions = new LinkedList<AccessReviewHistoryDecisionFilter>();
decisions.add(AccessReviewHistoryDecisionFilter.Approve);
decisions.add(AccessReviewHistoryDecisionFilter.Deny);
decisions.add(AccessReviewHistoryDecisionFilter.DontKnow);
decisions.add(AccessReviewHistoryDecisionFilter.NotReviewed);
decisions.add(AccessReviewHistoryDecisionFilter.NotNotified);
accessReviewHistoryDefinition.setDecisions(decisions);
OffsetDateTime reviewHistoryPeriodStartDateTime = OffsetDateTime.parse("2021-01-01T00:00:00Z");
accessReviewHistoryDefinition.setReviewHistoryPeriodStartDateTime(reviewHistoryPeriodStartDateTime);
OffsetDateTime reviewHistoryPeriodEndDateTime = OffsetDateTime.parse("2021-04-30T23:59:59Z");
accessReviewHistoryDefinition.setReviewHistoryPeriodEndDateTime(reviewHistoryPeriodEndDateTime);
LinkedList<AccessReviewScope> scopes = new LinkedList<AccessReviewScope>();
AccessReviewQueryScope accessReviewScope = new AccessReviewQueryScope();
accessReviewScope.setOdataType("#microsoft.graph.accessReviewQueryScope");
accessReviewScope.setQueryType("MicrosoftGraph");
accessReviewScope.setQuery("/identityGovernance/accessReviews/definitions?$filter=contains(scope/query, 'accessPackageAssignments')");
accessReviewScope.setQueryRoot(null);
scopes.add(accessReviewScope);
AccessReviewQueryScope accessReviewScope1 = new AccessReviewQueryScope();
accessReviewScope1.setOdataType("#microsoft.graph.accessReviewQueryScope");
accessReviewScope1.setQueryType("MicrosoftGraph");
accessReviewScope1.setQuery("/identityGovernance/accessReviews/definitions?$filter=contains(scope/query, '/groups')");
accessReviewScope1.setQueryRoot(null);
scopes.add(accessReviewScope1);
accessReviewHistoryDefinition.setScopes(scopes);
AccessReviewHistoryDefinition result = graphClient.identityGovernance().accessReviews().historyDefinitions().post(accessReviewHistoryDefinition);