A ogni file, cartella e Drive condiviso di Google Drive sono associate risorse
permissions
. Ogni risorsa identifica l'autorizzazione per un type
(user
, group
, domain
,
anyone
) e un role
(owner
, organizer
, fileOrganizer
, writer
,
commenter
, reader
) specifici. Ad esempio, un file potrebbe avere un'autorizzazione che concede a un
utente specifico (type=user
) l'accesso di sola lettura (role=reader
), mentre un'altra
autorizzazione concede ai membri di un gruppo specifico (type=group
) la possibilità di aggiungere
commenti a un file (role=commenter
).
Per un elenco completo dei ruoli e delle operazioni consentite da ciascuno, consulta Ruoli e autorizzazioni.
Come funzionano le autorizzazioni
Gli elenchi di autorizzazioni per una cartella si propagano verso il basso. Tutti i file e le cartelle secondari ereditano le autorizzazioni dalla cartella principale. Ogni volta che le autorizzazioni o la gerarchia vengono modificate, la propagazione avviene in modo ricorsivo in tutte le cartelle nidificate. Ad esempio, se un file esiste in una cartella e questa viene spostata in un'altra cartella, le autorizzazioni della nuova cartella vengono propagate al file. Se la nuova cartella concede all'utente del file un nuovo ruolo, ad esempio "autore", sostituisce il suo vecchio ruolo.
Al contrario, se un file eredita role=writer
da una cartella e viene spostato in un'altra cartella che fornisce il ruolo "Lettore", il file eredita role=reader
.
Le autorizzazioni ereditate non possono essere rimosse da un file o una cartella in un Drive condiviso. Queste autorizzazioni devono invece essere regolate nell'elemento principale diretto o indiretto da cui sono state ereditate. Le autorizzazioni ereditate possono essere rimosse dagli elementi in "Il mio Drive" o "Condivisi con me".
Al contrario, le autorizzazioni ereditate possono essere sostituite su un file o una cartella in Il mio
Drive. Pertanto, se un file eredita role=writer
da una cartella del mio Drive, puoi impostare role=reader
sul file per abbassarne il livello di autorizzazione.
Informazioni sulle funzionalità dei file
La risorsa permissions
non determina in ultima analisi la capacità dell'utente corrente di eseguire azioni su un file o una cartella.
La risorsa files
contiene invece una raccolta di campi capabilities
booleani utilizzati per indicare se è possibile eseguire un'azione su un file o una cartella. L'API Google Drive imposta questi campi in base alla risorsa delle autorizzazioni dell'utente corrente associata al file o alla cartella.
Ad esempio, quando Alex accede alla tua app e tenta di condividere un file, viene controllato se il suo ruolo ha autorizzazioni per il file. Se il ruolo consente di condividere un file,
i capabilities
relativi al file, ad esempio canShare
, vengono compilati
in base al ruolo. Se Alex vuole condividere il file, la tua app controlla il valore di capabilities
per assicurarsi che canShare
sia impostato su true
.
Per un esempio di recupero del file capabilities
, vedi Ottenere le funzionalità
del file.
Ottenere le funzionalità dei file
Quando l'app apre un file, deve verificare le relative funzionalità e visualizzare l'interfaccia utente in modo che rifletta le autorizzazioni dell'utente corrente. Ad esempio, se l'utente
non dispone di una funzionalità canComment
per il file, la possibilità di aggiungere commenti
dovrebbe essere disattivata nell'interfaccia utente.
Per controllare le funzionalità, chiama il metodo get()
nella risorsa files
con il parametro fileId
del percorso e il parametro fields
impostato sul campo capabilities
. Per approfondire i campi da restituire utilizzando il parametro fields
, consulta Restituire campi specifici.
Mostra un esempio
Il seguente esempio di codice mostra come verificare le autorizzazioni utente. La risposta restituisce un elenco delle funzionalità di cui l'utente dispone sul file. Ogni funzionalità corrisponde a un'azione granulare che un utente può eseguire. Alcuni campi vengono compilati solo per gli elementi dei Drive condivisi.
Richiedi
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
Risposta
{ "capabilities": { "canAcceptOwnership": false, "canAddChildren": false, "canAddMyDriveParent": false, "canChangeCopyRequiresWriterPermission": true, "canChangeSecurityUpdateEnabled": false, "canComment": true, "canCopy": true, "canDelete": true, "canDownload": true, "canEdit": true, "canListChildren": false, "canModifyContent": true, "canModifyContentRestriction": true, "canModifyLabels": true, "canMoveChildrenWithinDrive": false, "canMoveItemOutOfDrive": true, "canMoveItemWithinDrive": true, "canReadLabels": true, "canReadRevisions": true, "canRemoveChildren": false, "canRemoveMyDriveParent": true, "canRename": true, "canShare": true, "canTrash": true, "canUntrash": true } }
Scenari per la condivisione delle risorse di Drive
Esistono cinque diversi tipi di scenari di condivisione:
Per condividere un file in Il mio Drive, l'utente deve disporre del ruolo
role=writer
orole=owner
.Se il valore booleano
writersCanShare
è impostato sufalse
per il file, l'utente deve avererole=owner
.Se l'utente con
role=writer
ha accesso temporaneo regolato da una data e un'ora di scadenza, non può condividere il file. Per ulteriori informazioni, consulta Impostare una data di scadenza per limitare l'accesso ai file.
Per condividere una cartella in Il mio Drive, l'utente deve avere
role=writer
orole=owner
.Se il valore booleano
writersCanShare
è impostato sufalse
per il file, l'utente deve disporre del valorerole=owner
più permissivo.L'accesso temporaneo (regolato da una data e un'ora di scadenza) non è consentito nelle cartelle Il mio Drive con
role=writer
. Per ulteriori informazioni, consulta la sezione Impostare una data di scadenza per limitare l'accesso ai file.
Per condividere un file in un Drive condiviso, l'utente deve disporre del ruolo
role=writer
,role=fileOrganizer
orole=organizer
.- L'impostazione
writersCanShare
non si applica agli elementi dei Drive condivisi. Viene trattato come se fosse sempre impostato sutrue
.
- L'impostazione
Per condividere una cartella in un Drive condiviso, l'utente deve disporre del ruolo
role=organizer
.- Se la limitazione
sharingFoldersRequiresOrganizerPermission
su un Drive condiviso è impostata sufalse
, gli utenti conrole=fileOrganizer
possono condividere le cartelle al suo interno.
- Se la limitazione
Per gestire l'appartenenza a un Drive condiviso, l'utente deve disporre del ruolo
role=organizer
. Solo gli utenti e i gruppi possono essere membri dei Drive condivisi.
Creare un'autorizzazione
I seguenti due campi sono necessari per creare un'autorizzazione:
type
: il valoretype
identifica l'ambito dell'autorizzazione (user
,group
,domain
oanyone
). Un'autorizzazione contype=user
si applica a un utente specifico, mentre un'autorizzazione contype=domain
si applica a tutti gli utenti di un dominio specifico.role
: il camporole
identifica le operazioni chetype
può eseguire. Ad esempio, un'autorizzazione contype=user
erole=reader
concede a un utente specifico l'accesso di sola lettura al file o alla cartella. In alternativa, un'autorizzazione contype=domain
erole=commenter
consente a tutti gli utenti del dominio di aggiungere commenti a un file. Per un elenco completo dei ruoli e delle operazioni consentite da ciascuno, consulta Ruoli e autorizzazioni.
Quando crei un'autorizzazione in cui type=user
o type=group
, devi anche fornire un emailAddress
per associare l'utente o il gruppo specifico all'autorizzazione.
Quando crei un'autorizzazione in cui type=domain
, devi anche fornire un valore domain
per associare un dominio specifico all'autorizzazione.
Per creare un'autorizzazione:
- Utilizza il metodo
create()
con il parametro di percorsofileId
per il file o la cartella associato. - Nel corpo della richiesta, specifica
type
erole
. - Se
type=user
otype=group
, fornisci unemailAddress
. Setype=domain
, fornisci undomain
.
Mostra un esempio
Il seguente esempio di codice mostra come creare una autorizzazione. La risposta restituisce un'istanza di una risorsa Permission
, incluso l'permissionId
assegnato.
Richiedi
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
Risposta
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
Utilizzare i segmenti di pubblico di destinazione
I segmenti di pubblico di destinazione sono gruppi di persone, ad esempio reparti o team, che puoi consigliare agli utenti per la condivisione dei propri elementi. Puoi incoraggiare gli utenti a condividere gli elementi con un pubblico più specifico o circoscritto anziché con l'intera organizzazione. I segmenti di pubblico di destinazione possono aiutarti a migliorare la sicurezza e la privacy dei tuoi dati e semplificare la condivisione da parte degli utenti in modo appropriato. Per ulteriori informazioni, consulta Informazioni sui segmenti di pubblico di destinazione.
Per utilizzare i segmenti di pubblico di destinazione:
Nella Console di amministrazione Google, vai a Menu > Directory > Segmenti di pubblico di destinazione.
Vai a Segmenti di pubblico di destinazione
Per questa attività devi aver eseguito l'accesso utilizzando un account con privilegi di super amministratore.
Nell'elenco Segmenti di pubblico di destinazione, fai clic sul nome del pubblico di destinazione. Per creare un pubblico di destinazione, consulta Creare un pubblico di destinazione.
Copia l'ID univoco dall'URL del pubblico di destinazione:
https://admin.google.com/ac/targetaudiences/ID
.Crea un'autorizzazione con
type=domain
e imposta il campodomain
suID.audience.googledomains.com
.
Per visualizzare il modo in cui gli utenti interagiscono con i segmenti di pubblico di destinazione, consulta Esperienza utente per la condivisione tramite link.
Elenca tutte le autorizzazioni
Utilizza il metodo list()
sulla risorsa
permissions
per recuperare tutte le autorizzazioni per un file, una cartella o un drive condiviso.
Mostra un esempio
Il seguente esempio di codice mostra come ottenere tutte le autorizzazioni. La risposta restituisce un elenco di autorizzazioni.
Richiedi
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
Risposta
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
Aggiorna autorizzazioni
Per aggiornare le autorizzazioni per un file o una cartella, puoi modificare il ruolo assegnato. Per ulteriori informazioni su come trovare l'origine del ruolo, consulta Determinare l'origine del ruolo.
Chiama il metodo
update()
sulla risorsapermissions
con il parametro di percorsopermissionId
impostato sull'autorizzazione da modificare e il parametro di percorsofileId
impostato sul file, sulla cartella o sul Drive condiviso associato. Per trovarepermissionId
, utilizza il metodolist()
sulla risorsapermissions
con il parametro di percorsofileId
.Nella richiesta, identifica il nuovo
role
.
Puoi concedere autorizzazioni per singoli file o cartelle in un Drive condiviso anche se l'utente o il gruppo è già un membro. Ad esempio, Alex ha role=commenter
come parte della sua appartenenza a un Drive condiviso. Tuttavia, la tua app può concedere ad Alexrole=writer
l'accesso a un file in un Drive condiviso. In questo caso, poiché il nuovo ruolo è più permissivo del ruolo concesso tramite l'appartenenza, la nuova autorizzazione diventa il ruolo effettivo per il file o la cartella.
Mostra un esempio
Il seguente esempio di codice mostra come modificare le autorizzazioni per un file o una cartella da utente che può aggiungere commenti a utente che può scrivere. La risposta restituisce un'istanza di una risorsa permissions
.
Richiedi
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
Risposta
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
Determina l'origine del ruolo
Per modificare il ruolo di un file o di una cartella, devi conoscere la relativa origine. Per i Drive condivisi, l'origine di un ruolo può essere basata sull'appartenenza al Drive condiviso, sul ruolo in una cartella o sul ruolo in un file.
Per determinare l'origine del ruolo per un Drive condiviso o gli elementi al suo interno, chiama il metodo get()
sulla risorsa permissions
con i parametri di percorso fileId
e permissionId
e il parametro fields
impostato sul campo permissionDetails
.
Per trovare permissionId
, utilizza il metodo
list()
sulla risorsa permissions
con il parametro di percorso fileId
. Per recuperare il campo permissionDetails
nella richiesta list
, imposta il parametro fields
su
permissions/permissionDetails
.
Questo campo elenca tutte le autorizzazioni di file ereditate e dirette per l'utente, il gruppo o il dominio.
Mostra un esempio
Il seguente esempio di codice mostra come determinare l'origine del ruolo. La risposta restituisce il permissionDetails
di una risorsa permissions
. Il campo inheritedFrom
fornisce l'ID dell'elemento da cui viene ereditata l'autorizzazione.
Richiedi
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
Risposta
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
Aggiornare più autorizzazioni con richieste collettive
Ti consigliamo vivamente di utilizzare le richieste collettive per modificare più autorizzazioni.
Di seguito è riportato un esempio di esecuzione di una modifica collettiva delle autorizzazioni con una libreria client.
Java
Python
Node.js
PHP
.NET
Eliminare un'autorizzazione
Per revocare l'accesso a un file o a una cartella, chiama il metodo
delete()
sulla risorsa
permissions
con i parametri di percorso fileId
e
permissionId
impostati per eliminare l'autorizzazione.
Per gli elementi in "Il mio Drive", è possibile eliminare un'autorizzazione ereditata. L'eliminazione di un'autorizzazione ereditata comporta la revoca dell'accesso all'elemento e agli eventuali elementi secondari.
Per gli elementi di un Drive condiviso, le autorizzazioni ereditate non possono essere revocate. Aggiorna o elimina l'autorizzazione sul file o sulla cartella principale.
Il metodo delete()
viene utilizzato anche per eliminare le autorizzazioni applicate direttamente a un file o a una cartella di un Drive condiviso.
Mostra un esempio
Il seguente esempio di codice mostra come revocare l'accesso eliminando un permissionId
. In caso di esito positivo, il corpo della risposta è vuoto. Per verificare che l'autorizzazione sia stata rimossa, utilizza il metodo list()
sulla risorsa permissions
con il parametro di percorso fileId
.
Richiedi
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
Impostare una data di scadenza per limitare l'accesso ai file
Quando collabori con altre persone a un progetto sensibile, potresti voler limitare il loro accesso a determinati file su Drive dopo un determinato periodo di tempo. Puoi farlo impostando una data di scadenza per limitare o rimuovere l'accesso a un file specifico su Il mio Drive.
Per impostare la data di scadenza:
Utilizza il metodo
create()
sulla risorsapermissions
e imposta il campoexpirationTime
(insieme agli altri campi obbligatori). Per ulteriori informazioni, vedi Creare una permission.Utilizza il metodo
update()
sulla risorsapermissions
e imposta il campoexpirationTime
(insieme agli altri campi obbligatori). Per ulteriori informazioni, consulta la sezione Aggiornare le autorizzazioni.
Il campo expirationTime
indica la data di scadenza dell'autorizzazione utilizzando il formato RFC 3339
data-ora. I periodi di scadenza sono soggetti alle seguenti limitazioni:
- Possono essere impostati solo sulle autorizzazioni utente e gruppo.
- L'ora deve essere futura.
- L'ora non può essere successiva a quella corrente di più di un anno.
Per ulteriori informazioni sulla data di scadenza, consulta i seguenti articoli:
Argomenti correlati
- Gestire le proposte di accesso in attesa
- Trasferire la proprietà di un file
- Proteggere i contenuti dei file
- Accedere ai file di Drive condivisi tramite link utilizzando le chiavi di risorsa
- Ruoli e autorizzazioni