Condividi tramite


Imposta ACL tabella

L'operazione Set Table ACL imposta i criteri di accesso archiviati per la tabella che può essere usata con firme di accesso condiviso. Per altre informazioni, vedere Definire un criterio di accesso archiviato.

Nota

L'operazione Set Table ACL è disponibile nella versione 2012-02-12 e successive.

Nota

Un elenco di controllo di accesso (ACL) è un elenco di voci di controllo di accesso (ACL). Ogni ace in un elenco di controllo di accesso identifica un trustee e specifica i diritti di accesso consentiti, negati o controllati per tale trustee. Per altre informazioni, vedere Elenchi di controllo di accesso.

Richiesta

È possibile costruire la richiesta di Set Table ACL come indicato di seguito. È consigliabile usare HTTPS. Sostituire myaccount con il nome dell'account di archiviazione.

Metodo URI della richiesta Versione HTTP
PUT https://myaccount.table.core.windows.net/mytable?comp=acl HTTP/1.1

URI del servizio di archiviazione emulato

Quando si effettua una richiesta per il servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta di Archiviazione tabelle di Azure come 127.0.0.1:10002. Aggiungere quindi il nome dell'account di archiviazione emulato.

Metodo URI della richiesta Versione HTTP
PUT http://127.0.0.1:10002/devstoreaccount1/mytable?comp=acl HTTP/1.1

Per altre informazioni, vedere Usare l'emulatore Azurite per lo sviluppo locale di Archiviazione di Azure.

Parametri URI

È possibile specificare i parametri aggiuntivi seguenti nell'URI della richiesta:

Parametro Descrizione
timeout Opzionale. Espresso in secondi. Per altre informazioni, vedere Impostare timeout per le operazioni di archiviazione tabelle.

Intestazioni della richiesta

Nella tabella seguente vengono descritte le intestazioni di richiesta obbligatorie e facoltative:

Intestazione della richiesta Descrizione
Authorization Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
Date o x-ms-date Obbligatorio. Specifica l'ora UTC (Coordinated Universal Time) per la richiesta. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
x-ms-version Opzionale. Specifica la versione dell'operazione da utilizzare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure.
x-ms-client-request-id Opzionale. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log di Analisi archiviazione quando viene configurata la registrazione. È consigliabile usare questa intestazione per correlare le attività sul lato client alle richieste ricevute dal server.

Corpo della richiesta

Per specificare un criterio di accesso archiviato, specificare un identificatore univoco e un criterio di accesso nel corpo della richiesta per l'operazione di Set Table ACL.

L'elemento SignedIdentifier include l'identificatore univoco, come specificato nell'elemento Id. SignedIdentifier include anche i dettagli dei criteri di accesso, come specificato nell'elemento AccessPolicy. La lunghezza massima dell'identificatore univoco è di 64 caratteri.

I campi Start e Expiry devono essere espressi come ore UTC e devono essere conformi a un formato ISO 8061 valido. I formati ISO 8061 supportati includono:

  • YYYY-MM-DD

  • YYYY-MM-DDThh:mmTZD

  • YYYY-MM-DDThh:mm:ssTZD

  • YYYY-MM-DDThh:mm:ss.ffffffTZD

Per la parte data di questi formati, YYYY è una rappresentazione dell'anno a quattro cifre, MM è una rappresentazione mensile a due cifre e DD è una rappresentazione di giorno a due cifre. Per la parte temporale, hh è la rappresentazione dell'ora nella notazione di 24 ore, mm è la rappresentazione di minuti a due cifre, ss è la rappresentazione in seconda cifra e ffffff è la rappresentazione in millisecondi a sei cifre. L'identificatore dell'ora T separa le parti di data e ora della stringa. L'identificatore del fuso orario TZD specifica un fuso orario.

<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>unique-64-character-value</Id>  
    <AccessPolicy>  
      <Start>start-time</Start>  
      <Expiry>expiry-time</Expiry>  
      <Permission>abbreviated-permission-list</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  
  

Richiesta di esempio

Request Syntax:  
PUT https://myaccount.table.core.windows.net/mytable?comp=acl HTTP/1.1  
  
Request Headers:  
x-ms-version: 2013-08-15  
x-ms-date: Mon, 25 Nov 2013 00:42:49 GMT  
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>  
    <AccessPolicy>  
      <Start>2013-11-26T08:49:37.0000000Z</Start>  
      <Expiry>2013-11-27T08:49:37.0000000Z</Expiry>  
      <Permission>raud</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  
  

Risposta

La risposta include un codice di stato HTTP e un set di intestazioni di risposta.

Codice di stato

Un'operazione riuscita restituisce il codice di stato 204 (Nessun contenuto).

Per informazioni sui codici di stato, vedere Stato e codici di errore.

Intestazioni di risposta

La risposta per questa operazione include le intestazioni seguenti. La risposta potrebbe includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1 .

Intestazione della risposta Descrizione
x-ms-request-id Identifica in modo univoco la richiesta effettuata. È anche possibile usarlo per risolvere i problemi della richiesta. Per altre informazioni, vedere Risolvere i problemi relativi alle operazioni API.
x-ms-version Indica la versione di Archiviazione tabelle usata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate rispetto alla versione 2009-09-19 e successive.
Date Valore di data/ora UTC che indica l'ora in cui il servizio ha inviato la risposta.
x-ms-client-request-id Può essere usato per risolvere i problemi relativi alle richieste e alle risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id, se presente nella richiesta e il valore è al massimo 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, questa intestazione non sarà presente nella risposta.

Risposta di esempio

Response Status:  
HTTP/1.1 204 No Content  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: Mon, 25 Nov 2013 22:42:55 GMT  
x-ms-version: 2013-08-15  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
  

Autorizzazione

L'autorizzazione è necessaria quando si chiama un'operazione di accesso ai dati in Archiviazione di Azure. È possibile autorizzare l'operazione di Set Table ACL usando Microsoft Entra ID o Chiave condivisa.

Per autorizzare l'operazione di Set Table ACL usando Microsoft Entra ID, l'entità di sicurezza necessita di un ruolo controllo degli accessi in base al ruolo personalizzato di Azure che include l'azione RBAC seguente: Microsoft.Storage/storageAccounts/tableServices/tables/setAcl/action.

Importante

Microsoft consiglia di usare l'ID Microsoft Entra con identità gestite per autorizzare le richieste ad Archiviazione di Azure. Microsoft Entra ID offre maggiore sicurezza e facilità d'uso rispetto all'autorizzazione con chiave condivisa.

Osservazioni

Quando si impostano le autorizzazioni per una tabella, le autorizzazioni esistenti vengono sostituite. Per aggiornare le autorizzazioni della tabella, chiamare Get Table ACL per recuperare tutti i criteri di accesso associati alla tabella. Modificare i criteri di accesso da modificare e quindi chiamare Set Table ACL con il set completo di dati per eseguire l'aggiornamento.

Definizione dei criteri di accesso archiviati

Un criterio di accesso archiviato può specificare l'ora di inizio, l'ora di scadenza e le autorizzazioni per le firme di accesso condiviso a cui è associato. A seconda di come si vuole controllare l'accesso alla condivisione o alla risorsa file, è possibile:

  • Specificare tutti questi parametri all'interno dei criteri di accesso archiviati e ometterli dall'URL per la firma di accesso condiviso. In questo modo è possibile modificare il comportamento della firma associata o revocarlo in qualsiasi momento.
  • Specificare uno o più parametri dei criteri di accesso all'interno dei criteri di accesso archiviati e specificare gli altri parametri nell'URL.
  • Specificare tutti i parametri nell'URL. In questo caso, è possibile usare i criteri di accesso archiviati per revocare la firma, ma non per modificarne il comportamento.

Per altre informazioni sulla definizione dei criteri di accesso, vedere Definire un criterio di accesso archiviato.

Insieme, la firma di accesso condiviso e i criteri di accesso archiviati devono includere tutti i campi necessari per autorizzare la firma. Se mancano campi obbligatori, la richiesta avrà esito negativo. Analogamente, se un campo viene specificato sia nell'URL della firma di accesso condiviso che nei criteri di accesso archiviati, la richiesta avrà esito negativo con codice di stato 400 (richiesta non valida). Per altre informazioni sui campi che compongono una firma di accesso condiviso, vedere Creare una firma di accesso condiviso del servizio.

È possibile impostare un massimo di cinque criteri di accesso separati per una tabella in qualsiasi momento. Se nel corpo della richiesta vengono passati più di cinque criteri di accesso, il servizio restituisce il codice di stato 400 (richiesta non valida).

Nota

Quando si stabilisce un criterio di accesso archiviato in una tabella, potrebbero essere necessari fino a 30 secondi. Durante questo intervallo, una firma di accesso condiviso associata ai criteri di accesso archiviati avrà esito negativo con il codice di stato 403 (Accesso negato), fino a quando i criteri di accesso non diventano attivi.

Vedere anche

Definire un criterio di accesso archiviato
Creare e usare una firma di accesso condiviso
Delegare l'accesso con una firma di accesso condiviso
Get Table ACL
Autorizzare le richieste ad Archiviazione di Azure
codici di errore e stato