Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.
Tipo de permiso
Permisos con privilegios mínimos
Permisos con privilegios más altos
Delegado (cuenta profesional o educativa)
AccessReview.ReadWrite.All
No disponible.
Delegado (cuenta personal de Microsoft)
No admitida.
No admitida.
Aplicación
AccessReview.ReadWrite.All
No disponible.
Importante
En escenarios delegados con cuentas profesionales o educativas, al usuario que ha iniciado sesión se le debe asignar un rol de Microsoft Entra compatible o un rol personalizado con un permiso de rol admitido. Se admiten los siguientes roles con privilegios mínimos para esta operación.
Para escribir revisiones de acceso de un grupo o aplicación: Administrador de usuarios, Administrador de gobernanza de identidades
Para escribir revisiones de acceso de un rol de Microsoft Entra: Administrador de gobernanza de identidades, Administrador de roles con privilegios
Solicitud HTTP
POST /identityGovernance/accessReviews/historyDefinitions
En la tabla siguiente se muestran las propiedades necesarias que se usan para crear un accessReviewHistoryDefinition.
Propiedad
Tipo
Descripción
displayName
Cadena
Nombre de la recopilación de datos del historial de revisión de acceso. Obligatorio.
reviewHistoryPeriodStartDateTime
DateTimeOffset
Marca de tiempo. Las revisiones a partir de esta fecha o después se incluirán en los datos del historial capturados. Solo es necesario si scheduleSettings no está definido.
reviewHistoryPeriodEndDateTime
DateTimeOffset
Marca de tiempo. Las revisiones a partir de o antes de esta fecha se incluirán en los datos del historial capturado. Solo es necesario si scheduleSettings no está definido.
Se usa para filtrar qué revisiones se incluyen en los datos del historial capturado. Captura las revisiones cuyo ámbito coincide con este ámbito proporcionado. Obligatorio. Para obtener más información, vea Consultas de ámbito admitidas para accessReviewHistoryDefinition.
Todavía no se admite. La configuración de una serie de definiciones periódicas del historial de revisión de acceso. Solo es necesario si reviewHistoryPeriodStartDateTime o reviewHistoryPeriodEndDateTime no están definidos .
Consultas de ámbito admitidas para accessReviewHistoryDefinition
La propiedad scopes de accessReviewHistoryDefinition se basa en accessReviewQueryScope, un recurso que permite configurar diferentes recursos en su propiedad de consulta . A continuación, estos recursos representan el ámbito de la definición del historial y dictan el tipo de datos del historial de revisión que se incluyen en el archivo CSV descargable que se genera cuando se crea accessReviewHistoryInstances de la definición de historial.
El $filter parámetro de consulta con el contains operador se admite en la propiedad scope de accessReviewScheduleDefinition. Use el formato siguiente para la solicitud:
{object} puede tener uno de los siguientes valores:
Valor
Descripción
/groups
Enumera cada accessReviewScheduleDefinition en grupos individuales (excluye las definiciones con ámbito a todos los grupos de Microsoft 365 con invitados).
/groups/{group id}
Enumere cada accessReviewScheduleDefinition en un grupo específico (excluye las definiciones con ámbito a todos los grupos de Microsoft 365 con invitados).
./members
Enumere cada accessReviewScheduleDefinition con ámbito para todos los grupos de Microsoft 365 con invitados.
accessPackageAssignments
Enumere cada accessReviewScheduleDefinition en un paquete de acceso.
roleAssignmentScheduleInstances
Enumere cada accessReviewScheduleDefinition para las entidades de seguridad asignadas a un rol con privilegios.
El $filter parámetro de consulta no se admite en accessReviewInactiveUserQueryScope o principalResourceMembershipScope.
Respuesta
Si se ejecuta correctamente, este método devuelve un 201 Created código de respuesta y un objeto accessReviewHistoryDefinition en el cuerpo de la respuesta.
Ejemplos
En el ejemplo siguiente se muestra cómo crear una definición del historial de revisión de acceso con ámbito para acceder a revisiones en paquetes y grupos de acceso, que se ejecuta entre la fecha de inicio del 01/01/2021 y la fecha de finalización del 04/05/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);