Implementando acesso restrito com permissões e pastas aninhadas

O Dropbox (e a API do Dropbox) expandiu recentemente a flexibilidade do nosso modelo de permissões, adicionando a capacidade de os usuários do Dropbox Business criarem pastas com um público-alvo mais restrito do que as pastas pai. Isso é perfeito para os casos em que você deseja que uma subpasta tenha um público menor * que a pasta pai.

* Nota: este artigo está focado em casos de uso de acesso restrito , mas é possível criar subpastas que possuem mais compartilhamentos que uma pasta pai.

Neste artigo, abordaremos detalhes do que significa restringir as permissões de pasta, como editar essas permissões usando a API do Dropbox e executar alguns casos de uso comuns.

O que significa para uma pasta ter acesso restrito?

gif animado de um grupo sendo removido da lista compartilhada de uma pasta na interface do usuário do Dropbox
Restringindo o acesso a uma pasta na interface do usuário do Dropbox

Por padrão, novas pastas compartilhadas dentro de uma pasta de equipe herdam suas configurações de compartilhamento. No entanto, pastas com acesso restrito não herdam o acesso de membros da pasta pai e, em vez disso, podem ser definidas para um público mais limitado. Depois que a herança for quebrada, você poderá adicionar membros ou grupos individuais específicos para personalizar quem tem acesso (e em que nível) à subpasta específica. Esses tipos de pastas restritas podem ser criados apenas dentro das pastas da equipe.

Nota: as instruções do “Dropbox Web” neste artigo são destinadas a ajudar no acompanhamento, mas estão sujeitas a alterações. Para obter instruções oficiais, consulte o artigo restringir o acesso à pasta da Central de Ajuda.

Como restringir o acesso a uma pasta?

Nova pasta

Dropbox Web : dentro de uma pasta da equipe, clique em “Nova pasta” na página da web e selecione a opção “Pessoas específicas” na janela modal subsequente.

API do Dropbox : usando o terminal / sharing / share_folder, você pode designar um caminho e um nome para a nova pasta (um será criado se o pathnão for encontrado). Definir access_inheritancepara no_inheritgarantir que a pasta resultante seja criada sem nenhuma permissão herdada. Você pode personalizar quem tem acesso à pasta com / sharing / add_folder_member, que aceita um dropbox_id para uma conta, membro da equipe ou grupo.

Pastas existentes

Dropbox Web : no modal de compartilhamento, você pode restringir o acesso removendo os membros herdados da pasta pai. Você pode remover todos os * membros herdados da pasta pai de uma só vez ou remover um usuário / grupo herdado por vez.

Remova todos os membros herdados (clique em “Remover”)Removendo um único grupo / usuário herdado

API do Dropbox : use o terminal / sharing / set_access_inheritance para passar o parâmetro shared_folder_idno_inheritpara o access_inheritanceparâmetro. Uma vez executado, isso quebra as permissões herdadas da pasta pai e remove todos os * grupos e indivíduos atuais com acesso à pasta. A partir daqui, você pode atribuir um conjunto de permissões personalizado chamando sharing / add_folder_member e adicionando grupos ou pessoas específicos.

* Atualmente, você não pode remover membros herdados de uma pasta existente com mais de 100 membros.

Como restaurar membros da pasta pai?

Dropbox Web : Membros herdados podem ser restaurados clicando em “compartilhar com membros” no banner cinza. Depois que os membros da pasta pai são restaurados, a pasta não tem mais acesso restrito.

Restaurando permissões herdadas para uma pasta aninhada em uma pasta da equipe
Restaurando permissões herdadas para uma pasta aninhada

API do Dropbox : a execução do terminal de compartilhamento / set_access_inheritance com shared_folder_idas configurações ee passando a configuração inheritrestaurará todos os membros herdados da pasta pai.

Casos de Uso

Agora que temos uma boa visão geral de como permissões aninhadas e pastas restritas funcionam, vamos mergulhar em um cenário de implementação com a API do Dropbox.

Imagine que você é um administrador de uma empresa de mídia. Você está configurando uma nova pasta secreta de projeto para um de seus clientes existentes. Como o lançamento do produto do cliente é altamente confidencial, apenas alguns membros da equipe existente do cliente trabalharão nesse novo projeto. Você deseja garantir que todos os ativos do cliente estejam organizados na hierarquia correta, mas deseja limitar quem tem acesso à pasta específica do projeto para manter o lançamento em sigilo. Felizmente, as permissões restritas de pastas permitem que você faça exatamente isso.

Criando sua pasta

Crie a pasta do projeto abaixo da pasta do cliente e restrinja as permissões usando o terminal / sharing / share_folder .

curl -X POST https://api.dropboxapi.com/2/sharing/share_folder \--header "Authorization: Bearer <team_file_access_token> " \--header "Content-Type: application/json" \--header "Dropbox-API-Select-Admin: dbmid:AACf3TCu4HhXLhlYmfbrWnV3AvkQ-0oxCLp" \--data "{\"path\": \"/Client X/Secret Project Folder\",\"acl_update_policy\": \"editors\",\"force_async\": false,\"member_policy\": \"team\",\"shared_link_policy\": \"members\",\"access_inheritance\": \"no_inherit\"}"

Enquanto você também tem opções mais granulares para definir políticas de pasta, definindo access_inheritanceno_inheritneste contexto irá criar uma pasta com acesso restrito que não espelha permissões pai. Fornecer um pathque ainda não exista criará a pasta especificada, caso contrário, criará um novo compartilhamento para o caminho existente e retornará a shared_folder_id.

Definindo permissões

Em seguida, queremos conceder acesso à pasta secreta do projeto para uma equipe específica do cliente (já configurada como um grupo do Dropbox ). Primeiro, vamos pegar o shared_folder_idretorno da chamada acima ou usar / files / get_metadata. A partir daqui, você pode transmitir shared_folder_ide especificar a dropbox_idpara conceder acesso a um grupo específico de membros da equipe com o terminal / sharing / add_folder_member. Neste exemplo, a equipe do cliente secreto já foi adicionada a um grupo e estamos adicionando esse grupo à pasta com a do grupo dropbox_id. Embora estejamos adicionando um grupo nesta chamada, um dropbox_idpode pertencer a uma conta do Dropbox, a um membro individual da equipe ou a um grupo.

curl -X POST https://api.dropboxapi.com/2/sharing/add_folder_member \--header "Authorization: Bearer <team_file_access_token>" \--header "Content-Type: application/json" \--header "Dropbox-API-Select-Admin: dbmid:AACf3TCu4HhXLhlYmfbrWnV3AvkQ-0oxCLp" \--data "{\"shared_folder_id\": \"6448417792\",\"members\": [{\"member\": {\".tag\": \"dropbox_id\",\"dropbox_id\": \"g:76264835542b7610000000000000219e\"},\"access_level\": \"editor\"}],\"quiet\": true}"

Ajustando permissões

Ah não! Você acidentalmente adicionou os membros errados à sua pasta restrita. Não se preocupe, primeiro vamos olhar para todos os membros da pasta atual com / sharing / list_folder_members. Depois, podemos decidir quais grupos ou membros remover.

curl -X POST https://api.dropboxapi.com/2/sharing/list_folder_members \--header "Authorization: Bearer <team_file_access_token>" \--header "Content-Type: application/json" \--header "Dropbox-API-Select-Admin: dbmid:AACf3TCu4HhXLhlYmfbrWnV3AvkQ-0oxCLp" \--data "{\"shared_folder_id\": \"6448417792\",\"actions\": []}"

Depois de identificar o grupo ou membro que deseja remover, na resposta da chamada / sharing / list_folder_members, você pode prosseguir e usar / sharing / remove_folder_member. Certifique-se de informar os dropbox_idmembros (ou grupos) relevantes que você deseja remover e a shared_folder_idpasta de destino.

curl -X POST https://api.dropboxapi.com/2/sharing/remove_folder_member \--header "Authorization: Bearer <team_file_access_token>" \--header "Content-Type: application/json" \--header "Dropbox-API-Select-Admin: dbmid:AACf3TCu4HhXLhlYmfbrWnV3AvkQ-0oxCLp" \--data "{\"shared_folder_id\": \"6448417792\",\"member\": {\".tag\": \"dropbox_id\",\"dropbox_id\": \"g:76264835542b7610000000000000219e\"},\"leave_a_copy\": false}"

Restaurando permissões

Ótimo, agora a equipe do projeto teve tempo para executar com sucesso seu projeto em segredo. Eles entregaram o projeto, o cliente adorou, o produto foi lançado e agora você deseja restaurar as permissões padrão para que o restante da equipe do cliente possa aproveitar o excelente trabalho que eles fizeram! Você pode fazer isso chamando / sharing / set_access_inheritance e passando adianteinherit . Isso reverterá as permissões para os padrões da pasta pai.

curl -X POST https://api.dropboxapi.com/2/sharing/set_access_inheritance \--header "Authorization: Bearer <team_file_access_token>" \--header "Content-Type: application/json" \--header "Dropbox-API-Select-Admin: dbmid:AACf3TCu4HhXLhlYmfbrWnV3AvkQ-0oxCLp" \--data "{\"shared_folder_id\": \"6448417792\",\"access_inheritance\": \"inherit\"}"

Perguntas comuns

Quem pode restringir o acesso a uma pasta?

Qualquer membro da equipe pode restringir o acesso a uma pasta, desde que tenha a capacidade de gerenciar a associação a essa pasta.

Quais mensagens de erro os usuários veem ao acessar uma pasta restrita?

Um administrador vê este erroUm usuário vê este erro

Como esse recurso é visível no Dropbox?

ÍconeSignificado
Um usuário que não tem acesso a uma pasta em uma pasta de equipe verá esse ícone em todas as superfícies.
Um usuário que não tem acesso a uma pasta em uma pasta de equipe, mas é adicionado a uma ou mais subpastas, verá esse ícone em todas as superfícies. Eles podem clicar nessa pasta para acessar as subpastas às quais têm acesso, mas não verão outro conteúdo nessa pasta.
Um usuário que tem acesso a uma pasta dentro de uma pasta da equipe verá esse ícone em todas as superfícies.

Práticas recomendadas para grandes implantações

⚠️

Evite criar várias pastas com acesso restrito ao mesmo tempo. Nada vai quebrar, mas você pode encontrar uma contenção de bloqueio de espaço para nome.
– Por exemplo, evite usar nossas APIs para criar pastas em massa com acesso restrito na mesma árvore de pastas.

⚠️

Continue seguindo nossas orientações de que uma equipe não deve ter mais de 10.000 pastas compartilhadas. Uma pasta à qual você restringe o acesso é sempre uma pasta compartilhada. O desempenho do Dropbox pode diminuir para equipes com mais de 10.000 pastas compartilhadas.

⚠️

Tente manter as pastas da equipe sempre que possível, em vez de ter estruturas de compartilhamento profundamente aninhadas. O desempenho do Dropbox pode diminuir para grandes equipes com estruturas profundamente aninhadas.

⚠️

Não restrinja o acesso a pastas com mais de 100 membros. Nada vai quebrar, mas você verá uma mensagem de erro genérica. Uma solução provisória é criar uma nova pasta restrita e mover o conteúdo de uma pasta existente para a pasta recém-criada.

Compartilhando com a API do Dropbox

Neste artigo, abordamos o que significa restringir as permissões de pasta, como editá-las (na interface do usuário do Dropbox e na API do Dropbox), discutimos um caso de uso no mundo real e fornecemos algum contexto para trabalhar com implantações de maior escala. Entre esta postagem, ‘ 3 maneiras de adicionar o compartilhamento ao seu aplicativo Dropbox ‘ e ‘ Gerenciar o compartilhamento de equipes no seu aplicativo Dropbox ‘, abordamos muitos conceitos do Dropbox Sharing e como incorporá-los à sua própria integração. Armado com esse novo conhecimento, você pode ir além do simples armazenamento de arquivos para colaboração e administração. Mal podemos esperar para ver o que você constrói!

Veja o que é possível com a API do Dropbox e encontre outras maneiras de automatizar seu trabalho.

Crie com o Dropbox hoje mesmo em www.dropbox.com/developers

Clique aqui para saber mais sobre o Dropbox Transfer e inscreva-se na lista de espera para ser adicionado ao programa beta.

Facebook
Pinterest
Twitter
LinkedIn

Deixe uma resposta