Verwenden von Azure PIM zum Verwalten des berechtigten Zugriffs mit der REST-API
Mit Azure Privileged Identity Management (PIM) können Sie den ständigen Administratorzugriff auf privilegierte Rollen einschränken, ermitteln, wer Zugriff hat, und privilegierten Zugriff überprüfen. In diesem Artikel werden die allgemeinen Methoden zum Verwalten des Zugriffs mithilfe der REST-API beschrieben.
Auflisten berechtigter Aufgaben
Um berechtigte Rollenzuweisungen (Listenzugriff) auflisten zu können, können Sie eine der Rollenberechtigungsplanungsinstanzen verwenden – Liste für Bereichs - oder Rollenberechtigungszeitpläne – Liste für BereichS-REST-APIs. Um die Ergebnisse einzugrenzen, geben Sie einen Bereich und einen optionalen Filter an. Zum Aufrufen der API benötigen Sie Zugriff auf den Vorgang Microsoft.Authorization/roleAssignments/read für den angegebenen Bereich. Allen integrierten Rollen wird Zugriff auf diesen Vorgang gewährt.
Wichtig
Der Unterschied zwischen Terminplänen und Terminplanungsinstanzen besteht darin, dass bei Zeitplaninstanzen nur Zuordnungen enthalten, die zur aktuellen Zeit aktiv sind, auch Zeitpläne Zuordnungen, die in Zukunft aktiv werden.
Beginnen Sie mit der folgenden Anforderung:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleInstances?api-version=2020-10-01&$filter={filter}GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilitySchedules?api-version=2020-10-01&$filter={filter}Ersetzen Sie innerhalb des URIs {scope} durch den Bereich, für den die Rollen aufgelistet werden sollen.
`Scope` type providers/Microsoft.Management/managementGroups/{mg-name}Verwaltungsgruppe subscriptions/{subscriptionId}Subscription subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1Resource group subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1Resource Ersetzen Sie {filter} durch die Bedingung, die zum Filtern der Liste mit den Rollenzuweisungen angewendet werden soll.
Filtern BESCHREIBUNG $filter=atScope()Listet nur die Rollenzuweisungen für den angegebenen Bereich auf, ohne die Rollenzuweisungen der Unterbereiche. $filter=principalId%20eq%20'{objectId}'Listet die Rollenzuweisungen für bestimmte Benutzer, Gruppen oder Dienstprinzipale auf. $filter=roleDefinitionId%20eq%20'{roleDefinitionId}'Listenrollenzuweisungen für eine angegebene Rollendefinition. $filter=assignedTo('{objectId}')Listet Rollenzuweisungen für bestimmte Benutzer auf, einschließlich für von Gruppen geerbten Benutzer. $filter=asTarget()Listenrollenzuweisungen für den aktuellen Benutzer- oder Dienstprinzipal, einschließlich von Gruppen geerbten Rollenzuweisungen. $filter=assignedTo('{objectId}')+and+atScope()Listenrollenzuweisungen für einen angegebenen Benutzer, einschließlich von Gruppen geerbten Rollenzuweisungen nur für den angegebenen Bereich, nicht einschließlich der Rollenzuweisungen in Subscopes.
Berechtigungszuweisung erteilen
Um eine berechtigte Rollenzuweisung zu erstellen (Zugriff gewähren), verwenden Sie die Rollenberechtigungsplanungsanforderungen – Rest-API erstellen und den Sicherheitsprinzipal, die Rollendefinition, den Zeitplan, den RequestType = AdminAssign und den Bereich angeben. Um diese API aufzurufen, müssen Sie Zugriff auf den Microsoft.Authorization/roleAssignments/write Vorgang haben. Von den integrierten Rollen verfügen nur Besitzer und Benutzerzugriffsadministrator über Zugriff auf diesen Vorgang.
Verwenden Sie die REST API unter Rollendefinitionen – Auflisten oder lesen Sie Integrierte Rollen in Azure, um den Bezeichner für die zuzuweisende Rollendefinition zu ermitteln.
Verwenden Sie ein GUID-Tool, um einen eindeutigen Bezeichner zu generieren, der für den Bezeichner der Rollenzuweisung verwendet wird. Das Format des Bezeichners ist:
00000000-0000-0000-0000-000000000000Beginnen Sie mit folgender Anforderung und folgendem Text:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleRequests/{roleEligibilityScheduleRequestName}?api-version=2020-10-01{ "Properties": { "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "PrincipalId": "{principalId}", "RequestType": "AdminAssign", "ScheduleInfo": { "StartDateTime": "2020-09-09T21:31:27.91Z", "Expiration": { "Type": "AfterDuration", // Values: AfterDuration, AfterDateTime, NoExpiration "EndDateTime": null, "Duration": "P365D" // Use ISO 8601 format } } } }Ersetzen Sie innerhalb des URIs {scope} durch den Bereich für die Rollenzuweisung.
`Scope` type providers/Microsoft.Management/managementGroups/{mg-name}Verwaltungsgruppe subscriptions/{subscriptionId}Subscription subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1Resource group subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1Resource Ersetzen Sie {roleEligibilityScheduleRequestName} durch den GUID-Bezeichner der Rollenzuweisung.
Ersetzen Sie innerhalb des Anforderungstexts {subscriptionId} durch Ihre Abonnement-ID.
Ersetzen Sie {roleDefinitionId} durch den Bezeichner der Rollendefinition.
Ersetzen Sie {principalId} durch den Objektbezeichner des Benutzers, der Gruppe oder des Dienstprinzipals, der bzw. die der Rolle zugewiesen wird.
Berechtigungszuweisung entfernen
Um eine berechtigte Rollenzuweisung zu entfernen (Zugriff entfernen), verwenden Sie die Berechtigungsplanungsanforderungen für Rollen – Erstellen einer REST-API, um eine neue Anforderung zum Widerrufen der Zuordnung zu erstellen und den Sicherheitsprinzipal, die Rollendefinition, den RequestType = AdminRemove und den Bereich anzugeben. Zum Aufrufen dieser API benötigen Sie Zugriff auf den Vorgang Microsoft.Authorization/roleAssignments/write. Von den integrierten Rollen verfügen nur Besitzer und Benutzerzugriffsadministrator über Zugriff auf diesen Vorgang.
Verwenden Sie ein GUID-Tool, um einen eindeutigen Bezeichner zu generieren, der für den Bezeichner der Rollenzuweisung verwendet wird. Das Format des Bezeichners ist:
00000000-0000-0000-0000-000000000000Beginnen Sie mit der folgenden Anforderung:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleRequests/{roleEligibilityScheduleRequestName}?api-version=2020-10-01{ "Properties": { "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "PrincipalId": "{principalId}", "RequestType": "AdminRemove" } }Ersetzen Sie innerhalb des URIs {scope} durch den Bereich, um die Rollenzuweisung zu entfernen.
`Scope` type providers/Microsoft.Management/managementGroups/{mg-name}Verwaltungsgruppe subscriptions/{subscriptionId}Subscription subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1Resource group subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1Resource Ersetzen Sie {roleEligibilityScheduleRequestName} durch den GUID-Bezeichner der Rollenzuweisung.
Häufige Fehler, die für eine neue Anforderung zurückgegeben werden
Nachfolgend finden Sie eine Liste allgemeiner Fehler, die beim Erstellen einer neuen Anforderung auftreten können, und wie Sie sie mindern können.
| Fehlermeldung | Explanantion | Minderung |
|---|---|---|
code: RoleAssignmentExistsmessage: Die Rollenzuweisung ist bereits vorhanden. |
Eine ähnliche Rollenzuweisung ist bereits vorhanden. | Sie können GET diese Rollenzuweisung und den Zeitplan überprüfen. |
code: RoleAssignmentRequestPolicyValidationFailedmessage: Fehler bei den folgenden Richtlinienregeln: ["ExpirationRule"] |
Die ScheduleInfo in der Anforderung angegebene Dauer überschreitet die maximale zulässige Dauer. |
Sie können GET die RoleManagementPolicy hierfür RoleDefinitionId überprüfen und die RoleManagementPolicyExpirationRule |
code: RoleAssignmentRequestPolicyValidationFailedmessage: Fehler bei den folgenden Richtlinienregeln: ["JustificationRule"] |
Sie müssen einen Justification Anforderungstext angeben. |
Sie können GET die RoleManagementPolicy hierfür RoleDefinitionId überprüfen und die RoleManagementPolicyEnablementRule |
code: RoleAssignmentRequestPolicyValidationFailedmessage: Fehler bei den folgenden Richtlinienregeln: ["EligibilityRule"] |
Eine gültige RoleEligibilityScheduleInstance Funktion ist nicht vorhanden, um diese Rolle zu aktivieren. |
Ein Ressourcenadministrator muss einen RoleEligibilityScheduleRequest für diesen Prinzipal erstellen |
code: RoleAssignmentRequestPolicyValidationFailedmessage: Fehler bei den folgenden Richtlinienregeln: ["TicketingRule"] |
Sie müssen einen TicketInfo Anforderungstext angeben. |
Sie können GET die RoleManagementPolicy hierfür RoleDefinitionId überprüfen und die RoleManagementPolicyEnablementRule |
code: RoleAssignmentRequestPolicyValidationFailedmessage: Fehler bei den folgenden Richtlinienregeln: ["MfaRule"] |
Sie müssen die Azure Multi-Factor Authentication abschließen, um diese Anforderung zu übermitteln. | Sie können GET die RoleManagementPolicy hierfür RoleDefinitionId überprüfen und die RoleManagementPolicyEnablementRule |