Använda Azure PIM för att hantera aktiv åtkomst med REST-API:et
Med Azure Privileged Identity Management (PIM) kan du begränsa stående administratörsåtkomst till privilegierade roller, identifiera vem som har åtkomst och granska privilegierad åtkomst. Den här artikeln beskriver de vanliga sätten att hantera åtkomst med hjälp av REST-API:et.
Lista aktiva tilldelningar
Om du vill visa en lista över aktiva rolltilldelningar (liståtkomst) kan du använda någon av instanserna För schema för rolltilldelning – Lista över omfångs - eller rolltilldelningsscheman – lista över REST-API:er för omfång. Om du vill förfina dina resultat anger du ett omfång och ett valfritt filter. Om du vill anropa API:et måste du ha åtkomst till åtgärden Microsoft.Authorization/roleAssignments/read
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 tidpunkten, 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/roleAssignmentScheduleInstances?api-version=2020-10-01&$filter={filter}
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentSchedules?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 tillämpa för att filtrera rolltilldelningslistan.
Filtrera Description $filter=atScope()
Visa en lista över rolltilldelningar för endast det angivna omfånget, utan att inkludera rolltilldelningarna i underscopes. $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 för endast det angivna omfånget, inte inklusive rolltilldelningarna i underscopes.
Bevilja aktiv tilldelning
Om du vill skapa en aktiv rolltilldelning (bevilja åtkomst) använder du schemabegäranden för rolltilldelning – Skapa REST API och ange 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/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?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": "P30D" // 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 {roleAssignmentScheduleRequestName} 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 aktiv tilldelning
Om du vill ta bort en aktiv rolltilldelning (ta bort åtkomst) använder du schemabegäranden för rolltilldelning – 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/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?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 {roleAssignmentScheduleRequestName} med GUID-identifieraren för rolltilldelningen.
Aktivera en berättigad rolltilldelning
Om du vill aktivera en berättigad rolltilldelning (få aktiverad åtkomst) använder du schemabegäranden för rolltilldelning – Skapa REST-API för att skapa en ny begäran och ange säkerhetsobjekt, rolldefinition, requestType = SelfActivate
och omfång. Om du vill anropa det här API:et måste du ha en berättigad rolltilldelning i omfånget.
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
[Valfritt] Välj en
RoleEligibilitySchedule
som du vill aktivera och hämta från API:etRoleEligibilityScheduleId
för rollberättigandescheman för att skicka in somLinkedRoleEligibilityScheduleId
. Det här är valfritt och om det inte godkänns väljer systemet enRoleEligibilitySchedule
.Börja med följande begäran:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?api-version=2020-10-01
{ "Properties": { "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "PrincipalId": "{principalId}", "RequestType": "SelfActivate", "ScheduleInfo": { "StartDateTime": "2020-09-09T21:31:27.91Z", "Expiration": { "Type": "AfterDuration", // Values: AfterDuration, AfterDateTime, NoExpiration "EndDateTime": null, "Duration": "PT8H" // Use ISO 8601 format } }, "LinkedRoleEligibilityScheduleId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignmentSchedules/{roleAssignmentScheduleId}" //Optional } }
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 {roleAssignmentScheduleRequestName} med GUID-identifieraren för rolltilldelningen.
Inaktivera en aktiv rolltilldelning
Om du vill avaktivera en aktiverad rolltilldelning (ta bort aktiverad åtkomst) använder du schemabegäranden för rolltilldelning – Skapa REST-API för att skapa en ny begäran och ange säkerhetsobjekt, rolldefinition, requestType = SelfDeactivate
och omfång. Om du vill anropa det här API:et måste du ha en aktiverad rolltilldelning i omfånget.
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/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?api-version=2020-10-01
{ "Properties": { "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "PrincipalId": "{principalId}", "RequestType": "SelfDeactivate" } }
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 {roleAssignmentScheduleRequestName} med GUID-identifieraren för rolltilldelningen.
Just-Enough-Access (JEA)
Om en användare har en berättigad rolltilldelning på en resurs (överordnad) kan de välja att aktivera rollen på underordnad nivå för den överordnade resursen i stället för hela det överordnade omfånget. Om en användare till exempel har Contributor
en berättigad roll i en prenumeration kan de aktivera rollen på en underordnad resursgruppsnivå i prenumerationen.
Om du vill hämta en lista över alla underordnade till en resurs som du har berättigad åtkomst till kan du använda API:et Berättigade underordnade resurser .
Börja med följande begäran:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/eligibleChildResources?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 Ersätt {filter} med det villkor som du vill använda för att filtrera rolltilldelningslistan.
Filtrera Description $filter=resourceType+eq+'Subscription'
Lista resurser av typen = "Prenumeration". $filter=$filter=resourceType+eq+'subscription'+or+resourceType+eq+'resourcegroup''
Lista resurser av typen = "Prenumeration" eller typ = "ResourceGroup". Använd för
id
alla underordnade resurser som ska användas somscope
för aktiveringenRoleAssignmentScheduleRequest
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 |