Använda Azure PIM för att hantera berättigad åtkomst med REST-API:et
Med Azure Privileged Identity Management (PIM) kan du begränsa den stående administratörsåtkomsten till privilegierade roller, identifiera vem som har åtkomst och granska privilegierad åtkomst. I den här artikeln beskrivs vanliga sätt att hantera åtkomst med hjälp av REST-API:et.
Visa en lista över berättigade tilldelningar
Om du vill visa en lista över berättigade rolltilldelningar (liståtkomst) kan du använda någon av instanserna för rollberättigandescheman – lista över omfångs - eller rollberättigande scheman – lista för REST-API:er för omfång. Om du vill förfina resultatet anger du ett omfång och ett valfritt filter. Om du vill anropa API:et måste du ha åtkomst till Microsoft.Authorization/roleAssignments/read
åtgärden i det angivna omfånget. Alla inbyggda roller beviljas åtkomst till den här åtgärden.
Viktigt
Skillnaden mellan scheman och schemainstanser är att även om schemainstanser endast innehåller tilldelningar som är aktiva vid den aktuella tiden, inkluderar scheman även tilldelningar som kommer att bli aktiva i framtiden.
Börja med följande begäran:
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}
I URI:n ersätter du {scope} med det omfång som du vill lista rolltilldelningarna för.
Omfång Typ providers/Microsoft.Management/managementGroups/{mg-name}
Hanteringsgrupp subscriptions/{subscriptionId}
Prenumeration subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Resursgrupp subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1
Resurs Ersätt {filter} med det villkor som du vill använda för att filtrera rolltilldelningslistan.
Filtrera Description $filter=atScope()
Lista rolltilldelningar för endast det angivna omfånget, utan att inkludera rolltilldelningarna i underomfång. $filter=principalId%20eq%20'{objectId}'
Lista rolltilldelningar för en angiven användare, grupp eller tjänstens huvudnamn. $filter=roleDefinitionId%20eq%20'{roleDefinitionId}'
Lista rolltilldelningar för en angiven rolldefinition. $filter=assignedTo('{objectId}')
Lista rolltilldelningar för en angiven användare, inklusive de som ärvts från grupper. $filter=asTarget()
Lista rolltilldelningar för den aktuella användaren eller tjänstens huvudnamn, inklusive de som ärvts från grupper. $filter=assignedTo('{objectId}')+and+atScope()
Lista rolltilldelningar för en angiven användare, inklusive de som ärvts från grupper endast för det angivna omfånget, utan att inkludera rolltilldelningarna i underomfång.
Bevilja berättigad tilldelning
Om du vill skapa en berättigad rolltilldelning (bevilja åtkomst) använder du schemabegäranden om rollberättigande – Skapa REST API och anger säkerhetsobjekt, rolldefinition, schema, requestType = AdminAssign
och omfång. Om du vill anropa det här API:et måste du ha åtkomst till Microsoft.Authorization/roleAssignments/write
åtgärden. Av de inbyggda rollerna beviljas endast ägare och administratör för användaråtkomst åtkomst åtkomst till den här åtgärden.
Använd Rolldefinitioner – Lista REST API eller se Inbyggda roller för att hämta identifieraren för den rolldefinition som du vill tilldela.
Använd ett GUID-verktyg för att generera en unik identifierare som ska användas för rolltilldelningsidentifieraren. Identifieraren har formatet:
00000000-0000-0000-0000-000000000000
Börja med följande begäran och brödtext:
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 } } } }
I URI:n ersätter du {scope} med omfånget för rolltilldelningen.
Omfång Typ providers/Microsoft.Management/managementGroups/{mg-name}
Hanteringsgrupp subscriptions/{subscriptionId}
Prenumeration subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Resursgrupp subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1
Resurs Ersätt {roleEligibilityScheduleRequestName} med GUID-identifieraren för rolltilldelningen.
Ersätt {subscriptionId} med din prenumerationsidentifierare i begärandetexten.
Ersätt {roleDefinitionId} med rolldefinitionsidentifieraren.
Ersätt {principalId} med objektidentifieraren för användaren, gruppen eller tjänstens huvudnamn som ska tilldelas rollen.
Ta bort berättigad tilldelning
Om du vill ta bort en berättigad rolltilldelning (ta bort åtkomst) använder du schemabegäranden om rollberättigande – Skapa REST API för att skapa en ny begäran om att återkalla tilldelningen och ange säkerhetsobjekt, rolldefinition, requestType = AdminRemove
och omfång. Om du vill anropa det här API:et måste du ha åtkomst till åtgärden Microsoft.Authorization/roleAssignments/write
. Av de inbyggda rollerna beviljas endast ägare och administratör för användaråtkomst åtkomst åtkomst till den här åtgärden.
Använd ett GUID-verktyg för att generera en unik identifierare som ska användas för rolltilldelningsidentifieraren. Identifieraren har formatet:
00000000-0000-0000-0000-000000000000
Börja med följande begäran:
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" } }
I URI:n ersätter du {scope} med omfånget för att ta bort rolltilldelningen.
Omfång Typ providers/Microsoft.Management/managementGroups/{mg-name}
Hanteringsgrupp subscriptions/{subscriptionId}
Prenumeration subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Resursgrupp subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1
Resurs Ersätt {roleEligibilityScheduleRequestName} med GUID-identifieraren för rolltilldelningen.
Vanliga fel som returneras för en ny begäran
Nedan visas en lista över vanliga fel som kan uppstå när du skapar en ny begäran och hur du åtgärdar dem.
Felmeddelande | Explanantion | Åtgärd |
---|---|---|
code : RoleAssignmentExistsmessage : Rolltilldelningen finns redan. |
Det finns redan en liknande rolltilldelning | Du kan GET utföra den här rolltilldelningen och verifiera dess schema. |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Följande principregler misslyckades: ["ExpirationRule"] |
Angiven ScheduleInfo i begäran överskrider den maximala tillåtna varaktigheten |
Du kan GET använda RoleManagementPolicy för detta RoleDefinitionId och kontrollera RoleManagementPolicyExpirationRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Följande principregler misslyckades: ["JustificationRule"] |
Du måste ange en Justification i begärandetexten |
Du kan GET använda RoleManagementPolicy för detta RoleDefinitionId och kontrollera RoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Följande principregler misslyckades: ["EligibilityRule"] |
Det finns inget giltigt RoleEligibilityScheduleInstance alternativ för att aktivera den här rollen |
En resursadministratör måste skapa en RoleEligibilityScheduleRequest för det här huvudkontot |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Följande principregler misslyckades: ["TicketingRule"] |
Du måste ange en TicketInfo i begärandetexten |
Du kan GET använda RoleManagementPolicy för detta RoleDefinitionId och kontrollera RoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : Följande principregler misslyckades: ["MfaRule"] |
Du måste slutföra Azure Multi-Factor Authentication för att skicka den här begäran | Du kan GET använda RoleManagementPolicy för detta RoleDefinitionId och kontrollera RoleManagementPolicyEnablementRule |