Dela via


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.

  1. 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}
    
  2. 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
  3. 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.

  1. Använd Rolldefinitioner – Lista REST API eller se Inbyggda roller för att hämta identifieraren för den rolldefinition som du vill tilldela.

  2. 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

  3. 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
          }
        }
      }
    }
    
  4. 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
  5. Ersätt {roleEligibilityScheduleRequestName} med GUID-identifieraren för rolltilldelningen.

  6. Ersätt {subscriptionId} med din prenumerationsidentifierare i begärandetexten.

  7. Ersätt {roleDefinitionId} med rolldefinitionsidentifieraren.

  8. 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.

  1. 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

  2. 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"
        }
    }
    
  3. 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
  4. 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: RoleAssignmentExists
message: Rolltilldelningen finns redan.
Det finns redan en liknande rolltilldelning Du kan GET utföra den här rolltilldelningen och verifiera dess schema.
code: RoleAssignmentRequestPolicyValidationFailed
message: 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: RoleAssignmentRequestPolicyValidationFailed
message: 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: RoleAssignmentRequestPolicyValidationFailed
message: 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: RoleAssignmentRequestPolicyValidationFailed
message: 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: RoleAssignmentRequestPolicyValidationFailed
message: 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