Condividi tramite


Usare Azure PIM per gestire l'accesso idoneo con l'API REST

Azure Privileged Identity Management (PIM) consente di limitare l'accesso amministratore permanente ai ruoli con privilegi, individuare chi ha accesso e esaminare l'accesso con privilegi. Questo articolo descrive i modi comuni per gestire l'accesso tramite l'API REST.

Elencare le assegnazioni idonee

Per elencare le assegnazioni di ruolo idonee (accesso elenco), è possibile usare una delle istanze di pianificazione dell'idoneità del ruolo - Elenco per le pianificazioni di idoneità all'ambito o all'idoneità al ruolo - Elenco per le API REST dell'ambito . Per affinare i risultati, specificare un ambito e un filtro facoltativo. Per chiamare l'API, è necessario avere accesso all'operazione Microsoft.Authorization/roleAssignments/read nell'ambito specificato. Tutti i ruoli predefiniti vengono concessi l'accesso a questa operazione.

Importante

La differenza tra pianificazioni e istanze di pianificazione è che, mentre le istanze di pianificazione includono solo assegnazioni attive all'ora corrente, le pianificazioni includono anche assegnazioni che diventeranno attive in futuro.

  1. Iniziare con la richiesta seguente:

    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. All'intero dell'URI sostituire {scope} con l'ambito per il quale elencare le assegnazioni di ruolo.

    Scope Tipo
    providers/Microsoft.Management/managementGroups/{mg-name} Gruppo di gestione
    subscriptions/{subscriptionId} Subscription
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Resource group
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Risorsa
  3. Sostituire {filter} con la condizione da applicare per filtrare l'elenco delle assegnazioni di ruolo.

    Filtra Descrizione
    $filter=atScope() Elencare le assegnazioni di ruolo solo per l'ambito specificato, senza includere le assegnazioni di ruolo negli ambiti secondari.
    $filter=principalId%20eq%20'{objectId}' Elencare le assegnazioni di ruolo per un utente, un gruppo o un'entità servizio specificata.
    $filter=roleDefinitionId%20eq%20'{roleDefinitionId}' Elencare le assegnazioni di ruolo per una definizione di ruolo specificata.
    $filter=assignedTo('{objectId}') Elencare le assegnazioni di ruolo per un utente specificato, incluse quelle ereditate dai gruppi.
    $filter=asTarget() Elencare le assegnazioni di ruolo per l'utente o l'entità servizio correnti, incluse quelle ereditate dai gruppi.
    $filter=assignedTo('{objectId}')+and+atScope() Elencare le assegnazioni di ruolo per un utente specificato, incluse quelle ereditate da gruppi solo per l'ambito specificato, non incluse le assegnazioni di ruolo nei sottoscope.

Concedere l'assegnazione idonea

Per creare un'assegnazione di ruolo idonea (accesso concesso), usare le richieste di pianificazione dell'idoneità del ruolo - Creare l'API REST e specificare l'entità di sicurezza, la definizione del ruolo, la pianificazione, la richiestaType = AdminAssign e l'ambito. Per chiamare questa API, è necessario avere accesso all'operazione Microsoft.Authorization/roleAssignments/write . Tra i ruoli predefiniti, l'accesso a questa operazione viene concesso soltanto ai ruoli Proprietario e Amministratore Accesso utenti.

  1. Usare l'API REST per l'elenco delle definizioni del ruolo o vedere Ruoli predefiniti per ottenere l'identificatore per la definizione del ruolo da assegnare.

  2. Usare uno strumento GUID per generare un identificatore univoco che verrà usato per l'identificatore dell'assegnazione di ruolo. Il formato dell'identificatore è: 00000000-0000-0000-0000-000000000000

  3. Iniziare con la richiesta e il corpo seguenti:

    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. All'interno dell'URI sostituire {scope} con l'ambito per l'assegnazione di ruolo.

    Scope Tipo
    providers/Microsoft.Management/managementGroups/{mg-name} Gruppo di gestione
    subscriptions/{subscriptionId} Subscription
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Resource group
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Risorsa
  5. Sostituire {roleEligibilityScheduleRequestName} con l'identificatore GUID dell'assegnazione di ruolo.

  6. All'interno del corpo della richiesta sostituire {subscriptionId} con l'identificatore della sottoscrizione.

  7. Sostituire {roleDefinitionId} con l'identificatore della definizione del ruolo.

  8. Sostituire {principalId} con l'identificatore di oggetto dell'utente, del gruppo o dell'entità servizio a cui verrà assegnato il ruolo.

Rimuovere l'assegnazione idonea

Per rimuovere un'assegnazione di ruolo idonea (rimuovere l'accesso), usare le richieste di pianificazione idoneità ruolo - Creare una nuova richiesta per revocare l'assegnazione e specificare l'entità di sicurezza, la definizione del ruolo, requestType = AdminRemove e l'ambito. Per chiamare questa API, è necessario avere accesso all'operazione Microsoft.Authorization/roleAssignments/write. Tra i ruoli predefiniti, l'accesso a questa operazione viene concesso soltanto ai ruoli Proprietario e Amministratore Accesso utenti.

  1. Usare uno strumento GUID per generare un identificatore univoco che verrà usato per l'identificatore dell'assegnazione di ruolo. Il formato dell'identificatore è: 00000000-0000-0000-0000-000000000000

  2. Iniziare con la richiesta seguente:

    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. All'interno dell'URI sostituire {scope} con l'ambito per la rimozione dell'assegnazione di ruolo.

    Scope Tipo
    providers/Microsoft.Management/managementGroups/{mg-name} Gruppo di gestione
    subscriptions/{subscriptionId} Subscription
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Resource group
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1 Risorsa
  4. Sostituire {roleEligibilityScheduleRequestName} con l'identificatore GUID dell'assegnazione di ruolo.

Errori comuni restituiti per una nuova richiesta

Di seguito è riportato un elenco di errori comuni che potrebbero verificarsi durante la creazione di una nuova richiesta e come attenuarli.

Messaggio di errore Explanantion Strategia di riduzione del rischio
code: RoleAssignmentExists
message: l'assegnazione di ruolo esiste già.
Esiste già un'assegnazione di ruolo simile È possibile GET eseguire questa assegnazione di ruolo e verificare la pianificazione.
code: RoleAssignmentRequestPolicyValidationFailed
message: le regole dei criteri seguenti non sono riuscite: ["ExpirationRule"]
L'oggetto ScheduleInfo specificato nella richiesta supera la durata massima consentita Per questa RoleDefinitionId operazione è possibile GET selezionare RoleManagementPolicyRoleManagementPolicyExpirationRule
code: RoleAssignmentRequestPolicyValidationFailed
message: le regole dei criteri seguenti non sono riuscite: ["JustificationRule"]
È necessario specificare un Justification oggetto nel corpo della richiesta Per questa RoleDefinitionId operazione è possibile GET selezionare RoleManagementPolicyRoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: le regole dei criteri seguenti non sono riuscite: ["IdoneitàRule"]
Un valore valido RoleEligibilityScheduleInstance non esiste per attivare questo ruolo Un amministratore di risorse deve creare un RoleEligibilityScheduleRequest oggetto per questa entità
code: RoleAssignmentRequestPolicyValidationFailed
message: le regole dei criteri seguenti non sono riuscite: ["TicketingRule"]
È necessario specificare un TicketInfo oggetto nel corpo della richiesta Per questa RoleDefinitionId operazione è possibile GET selezionare RoleManagementPolicyRoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: le regole dei criteri seguenti non sono riuscite: ["MfaRule"]
È necessario completare Azure Multi-Factor Authentication per inviare questa richiesta Per questa RoleDefinitionId operazione è possibile GET selezionare RoleManagementPolicyRoleManagementPolicyEnablementRule