Überprüfen des Zugriffs auf Sicherheitsgruppen mithilfe von Zugriffsüberprüfungs-APIs
Artikel
Die Zugriffsüberprüfungs-API in Microsoft Graph ermöglicht Es Organisationen, den Zugriff zu überwachen und zu bestätigen, dass Identitäten (auch Prinzipale genannt) Ressourcen im organization zugewiesen werden. Sie können Sicherheitsgruppen verwenden, um den Zugriff auf Ressourcen in Ihrem organization effizient zu verwalten. Beispielsweise zugriff auf eine SharePoint-Website, die Marketing-Playbooks enthält. Mithilfe der Zugriffsüberprüfungs-API können Organisationen in regelmäßigen Abständen Prinzipalen, die Zugriff auf solche Gruppen haben, und ressourcen im organization nachweisen.
In diesem Tutorial wird Folgendes vermittelt:
Erstellen Sie eine wiederkehrende Zugriffsüberprüfung von Mitgliedschaften in Sicherheitsgruppen.
Bestätigen Sie selbst, dass der Zugriff auf eine Gruppe beibehalten werden muss.
Voraussetzungen
Für dieses Tutorial benötigen Sie die folgenden Ressourcen und Berechtigungen:
Ein Funktionierender Microsoft Entra Mandant mit aktivierter Microsoft Entra ID P2- oder Microsoft Entra ID Governance-Lizenz.
Zwei Testgäste und eine Testsicherheitsgruppe in Ihrem Mandanten. Die Gäste sollten Mitglieder der Gruppe sein, und die Gruppe sollte mindestens einen Besitzer haben.
Melden Sie sich bei einem API-Client wie Graph Explorer an, um Microsoft Graph mit einem Konto aufzurufen, das mindestens über die Rolle Identity Governance-Administrator verfügt.
[Optional] Öffnen Sie ein neues Inkognito-, anonymes oder InPrivate-Browserfenster . Sie melden sich später in diesem Tutorial an.
Gewähren Sie sich die folgenden delegierten Berechtigungen: AccessReview.ReadWrite.All.
Hinweis
Überprüfung von Gruppen, die von PIM gesteuert werden, weisen nur aktive Besitzer als Prüfer zu. Berechtigte Besitzer sind nicht enthalten. Für die Zugriffsüberprüfung von Gruppen, die von PIM gesteuert werden, ist mindestens ein Fallbackprüfer erforderlich. Wenn zu Beginn der Überprüfung keine aktiven Besitzer vorhanden sind, wird den Fallbackprüfern die Überprüfung zugewiesen.
Schritt 1: Erstellen einer Zugriffsüberprüfung für die Sicherheitsgruppe
Anforderung
Ersetzen Sie in diesem Aufruf die folgenden Werte:
eb75ccd2-59ef-48b7-8f76-cc3f33f899f4 mit der ID der Sicherheitsgruppe.
Der Wert von startDate mit dem heutigen Datum und dem Wert endDate mit einem Datum fünf Tage nach dem Startdatum.
Die Zugriffsüberprüfung verfügt über die folgenden Einstellungen:
Es handelt sich um eine sich selbst bestätigende Überprüfung, die abgeleitet wird, wenn Sie keinen Wert für die Reviewers-Eigenschaft angeben. Daher bestätigt jedes Gruppenmitglied selbst, dass es den Zugriff auf die Gruppe beibehalten muss.
Der Umfang der Überprüfung ist sowohl direkte als auch transitive Mitglieder der Gruppe.
Der Prüfer muss begründen, warum er Zugriff auf die Gruppe behalten muss.
Die Standardentscheidung istDeny, wenn die Prüfer nicht auf die Zugriffsüberprüfungsanforderung reagieren, bevor die instance abläuft. Die Deny Entscheidung entfernt die Gruppenmitglieder aus der Gruppe.
Es handelt sich um eine einmalige Zugriffsüberprüfung, die nach fünf Tagen endet. Daher muss sich der Benutzer, sobald der Zugriff gewährt wurde, innerhalb des Zugriffsüberprüfungszeitraums nicht mehr selbst bestätigen.
Die Prinzipale, die im Bereich der Überprüfung definiert sind, erhalten E-Mail-Benachrichtigungen und Erinnerungen, in denen sie aufgefordert werden, sich selbst zu bestätigen, dass sie den Zugriff beibehalten müssen.
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();
Der status der Zugriffsüberprüfung ist NotStarted. Sie können die Zugriffsüberprüfung (GET https://graph.microsoft.com/v1.0/identityGovernance/accessReviews/definitions/2d56c364-0695-4ec6-8b92-4c1db7c80f1b) abrufen, um die status zu überwachen. Wenn ihr status InProgress ist, wurden Instanzen für die Zugriffsüberprüfung erstellt, und Entscheidungen können gepostet werden. Sie können auch die Zugriffsüberprüfung abrufen, um die vollständigen Einstellungen anzuzeigen.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
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": []
}
Schritt 2: Auflisten von Instanzen der Zugriffsüberprüfung
Sobald die status der Zugriffsüberprüfung als InProgressgekennzeichnet ist, führen Sie die folgende Abfrage aus, um alle Instanzen der Zugriffsüberprüfungsdefinition aufzulisten. Da Sie im vorherigen Schritt eine einmalige Zugriffsüberprüfung erstellt haben, gibt die Anforderung nur eine instance mit einer ID wie der ID der Zeitplandefinition zurück.
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()
In dieser Antwort liegt InProgress der status des instance daran, dass startDateTime vorbei und endDateTime in der Zukunft liegt. Wenn startDateTime in der Zukunft liegt, lautet NotStarteddie status . Wenn endDateTime hingegen in der Vergangenheit liegt, ist Completeddie status .
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
Schritt 3: Überprüfen, wer für die Überprüfung kontaktiert wurde
Sie können bestätigen, dass alle Mitglieder der Sicherheitsgruppe kontaktiert wurden, um ihre Überprüfungsentscheidungen für diese instance der Zugriffsüberprüfung zu veröffentlichen.
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()
Die folgende Antwort zeigt die Entscheidungen, die am instance der Überprüfung getroffen wurden. Da die Sicherheitsgruppe über zwei Mitglieder verfügt, werden zwei Entscheidungselemente erwartet.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
Aus dem Aufruf weist die decision-Eigenschaft den Wert von NotReviewed auf, da die Gruppenmitglieder ihren Selbstnachweis nicht abgeschlossen haben. Im nächsten Schritt wird gezeigt, wie jedes Mitglied seinen Bedarf an Zugriffsüberprüfung selbst bestätigen kann.
Schritt 5: Selbstbestätigung einer ausstehenden Zugriffsentscheidung
Sie haben die Zugriffsüberprüfung als selbstnachweisend konfiguriert. Diese Konfiguration erfordert, dass beide Mitglieder der Gruppe selbst bestätigen, dass sie ihren Zugriff auf die Gruppe beibehalten müssen.
Hinweis
Führen Sie diesen Schritt als eines der beiden Mitglieder der Sicherheitsgruppe aus.
In diesem Schritt listen Sie Ihre ausstehenden Zugriffsüberprüfungen auf und schließen dann den Selbstnachweisprozess ab. Sie können diesen Schritt auf eine von zwei Arten ausführen, indem Sie die API oder das Portal "Mein Zugriff" verwenden. Der andere Prüfer bestätigt sich nicht selbst, und stattdessen werden die Standardentscheidungen auf seine Zugriffsüberprüfung angewendet.
Starten Sie eine neue Inkognito-, anonyme oder InPrivate-Browsersitzung , und melden Sie sich als eines der beiden Mitglieder der Sicherheitsgruppe an. Dadurch unterbrechen Sie ihre aktuelle Administratorsitzung nicht. Alternativ können Sie Ihre aktuelle Administratorsitzung unterbrechen, indem Sie sich bei Graph Explorer abmelden und sich als eines der beiden Gruppenmitglieder wieder anmelden.
Methode 1: Verwenden der Zugriffsüberprüfungs-API zur Selbstüberprüfung ausstehender Zugriff
Auflisten ihrer Entscheidungselemente für Zugriffsüberprüfungen
Anforderung
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')
Antwort
In der Antwort haben Sie (Adele Vance) eine ausstehende Zugriffsüberprüfung (Entscheidung ist NotReviewed), die Sie selbst bestätigen können. Die Eigenschaften prinzipal und resource geben den Prinzipal an, für den die Entscheidung gilt, und die Ressource, auf die der Zugriff überprüft wird. In diesem Fall adele Vance bzw. die Sicherheitsgruppe.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
Um die Zugriffsüberprüfung abzuschließen, bestätigt Adele Vance, dass der Zugriff auf die Sicherheitsgruppe beibehalten werden muss.
Die Anforderung gibt einen 204 No Content Antwortcode zurück.
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."
}
Überprüfen der Entscheidungen
Um die Entscheidungen zu überprüfen, die Sie für Ihre Zugriffsüberprüfung aufgezeichnet haben, listen Sie Ihre Entscheidungselemente für die Zugriffsüberprüfung auf. Während der Zeitraum für die Zugriffsüberprüfung noch nicht abgelaufen ist und die Entscheidungen angewendet wurden, wird applyResult als New gekennzeichnet, und Sie können die Entscheidung ändern.
Sie können sich jetzt abmelden und die Inkognito-Browsersitzung beenden.
Methode 2: Verwenden des Portals "Mein Zugriff"
Alternativ können Sie Ihre ausstehenden Zugriffsüberprüfungsinstanzen über das Portal "Mein Zugriff" überprüfen.
Listet die ausstehenden Zugriffsüberprüfungen auf. Der Benutzer kann eine von zwei Möglichkeiten verwenden, um dorthin zu gelangen:
Option 1: Wählen Sie die Schaltfläche Zugriff überprüfen aus der E-Mail-Benachrichtigung aus, die sie in ihrem E-Mail-Posteingang erhalten haben. Die E-Mail-Benachrichtigung ähnelt dem folgenden Screenshot. Diese Schaltfläche ist ein direkter Link zur ausstehenden Zugriffsüberprüfung.
Option 2: Wechseln Sie zum Portal "Mein Zugriff ". Wählen Sie das Menü Zugriffsüberprüfungen und dann die Registerkarte Gruppen und Apps aus.
Wählen Sie in der Liste der Zugriffsüberprüfungen die Zugriffsüberprüfung aus, für die Sie die Entscheidung veröffentlichen möchten. Wählen Sie Ja aus, um die Entscheidung zu veröffentlichen, dass Sie weiterhin Zugriff auf Gebäudesicherheit benötigen. Geben Sie einen Grund ein, und wählen Sie dann Absenden aus.
Sie können sich jetzt abmelden und die Inkognito-Browsersitzung beenden.
Schritt 6: Bestätigen der Entscheidungen und der status der Zugriffsüberprüfung
Wiederholen Sie in der Standard Browsersitzung, in der Sie noch mit Administratorrechten angemeldet sind, Schritt 4, um festzustellen, dass die Decision-Eigenschaft für Adele Vance jetzt Approveist. Wenn die Zugriffsüberprüfung endet oder abläuft, wird die Standardentscheidung von Deny für Alex Wilber aufgezeichnet. Die Entscheidungen werden dann automatisch angewendet, da autoApplyDecisionsEnabled auf true festgelegt wurde und der Zeitraum der Zugriffsüberprüfung beendet instance. Adele behält zugriff auf die Sicherheitsgruppe, während Alex automatisch aus der Gruppe entfernt wird.
Herzlichen Glückwunsch! Sie haben eine Zugriffsüberprüfung erstellt und ihre Notwendigkeit, den Zugriff aufrechtzuerhalten, selbst bestätigt. Sie haben sich nur einmal selbst bestätigt und behalten Ihren Zugriff, bis er entweder durch eine Entscheidung einer anderen Zugriffsüberprüfung instance oder durch einen Deny anderen internen Prozess entfernt wird.
Schritt 7: Ressourcen bereinigen
In diesem Aufruf löschen Sie die Zugriffsüberprüfungsdefinition. Da die Definition des Zugriffsüberprüfungszeitplans die Blaupause für die Zugriffsüberprüfung ist, werden beim Löschen der Definition die zugehörigen Einstellungen, Instanzen und Entscheidungen entfernt.
Die Anforderung gibt einen 204 No Content Antwortcode zurück.
// 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()
Sie haben eine Zugriffsüberprüfung erstellt, bei der die Prinzipale selbst bestätigt haben, dass sie ihren Zugriff auf eine Ressource beibehalten müssen, in diesem Fall die Sicherheitsgruppe Gebäude .
In diesem Tutorial wurde eines der Szenarien der Microsoft Entra-Zugriffsüberprüfungs-API veranschaulicht. Die Zugriffsüberprüfungs-API unterstützt verschiedene Szenarien durch eine Kombination aus Ressourcen, Prinzipalen und Prüfern, die Ihren Anforderungen an den Zugriffsnachweis entsprechen. Weitere Informationen finden Sie in der Zugriffsüberprüfungs-API.