Modelo de organização
Um modelo de organização é um design de controle de acesso para aplicativos multi-inquilinos. Ele se baseia nos fundamentos do controle de acesso baseado em papel (RBAC), mas é adaptado para ambientes multi-inquilinos, onde organizações representam empresas, grupos ou usuários.
No nível da organização, o controle de acesso é necessário para gerenciar permissões para recursos.
Aqui está um exemplo usando o Notion, uma ferramenta de colaboração popular e um aplicativo típico multi-inquilino. Ele suporta vários recursos para autenticação e autorização:
- Você pode criar e ingressar em vários espaços de trabalho com uma conta, em vez de precisar de contas separadas para cada espaço de trabalho.
- O Notion usa o mesmo conjunto de níveis de acesso, como "Proprietário do espaço de trabalho" e "Membro", em todos os espaços de trabalho, mesmo que você possa esperar diferentes níveis de acesso para cada um.
Neste capítulo, vamos nos concentrar no modelo de organização, que se refere ao design de autorização no nível da organização.
Para configurá-lo adequadamente, você precisa entender [como as organizações funcionam] e as diferentes entidades envolvidas. Se você ainda não revisou isso, certifique-se de ler esses capítulos.
Entender o modelo de organização
Permissão da organização
Permissão da organização refere-se à autorização para realizar uma ação no contexto da organização. Uma permissão da organização deve ser representada como uma string significativa, também servindo como nome e identificador único.
Por exemplo, edit:resource
.
As permissões da organização não são significativas sem o contexto de uma organização. Por exemplo, edit:resource
no contexto da organização org1
é diferente de edit:resource
no contexto da organização org2
porque estão apontando para diferentes recursos (org 1
vs org 2
).
Papel da organização
Um papel da organização é uma coleção de permissões da organização ou de API (permissões definidas diretamente em recursos de API no Logto Cloud) que podem ser atribuídas a usuários.
Os papéis da organização não são significativos sem o contexto de uma organização. Por exemplo, admin
no contexto da organização org1
é diferente de admin
no contexto da organização org2
.
Posso atribuir permissões definidas no nível do recurso de API aos papéis da organização?
Sim, você pode atribuir permissões de API aos papéis da organização, não apenas permissões no nível da organização.
Recursos de API no Logto Cloud protegem principalmente recursos no nível do usuário / sistema, mas quando sistemas e organizações compartilham endpoints, o Logto permite que você atribua permissões de API aos papéis da organização para flexibilidade.
Modelo de organização
Modelo de organização refere-se a uma coleção de permissões e papéis da organização que se aplicam a cada organização. É considerado como controle de acesso baseado em papel no nível da organização.
Pense em um aplicativo de colaboração típico, e eles naturalmente compartilham o mesmo "modelo" de controle de acesso que define níveis de acesso e o que os usuários podem fazer na organização. Chamamos isso de "modelo de organização" no Logto.
Vamos pegar um exemplo para entender como tudo se conecta:
John, Sarah estão em diferentes organizações com diferentes papéis no contexto de diferentes organizações.
A partir deste diagrama, aqui estão algumas informações que você precisa saber:
- John está afiliado a duas organizações, usando o email
[email protected]
como seu identificador único. Ele ocupa a posição deadmin
naOrganização A
e é umconvidado
naOrganização B
. - Sarah está associada a uma única organização e usa o email
[email protected]
como seu identificador único. Ela é aadmin
daOrganização B
. - Os papéis de
Admin
,Membro
eConvidado
são designados dentro das organizações e esses papéis são consistentes em várias organizações. - Papéis adicionais podem ser criados nas configurações do modelo de organização. Esses papéis recém-criados serão aplicados e compartilhados em todas as organizações.
No Logto, o modelo de organização é um modelo de controle de acesso projetado especificamente para organizações. Embora seja baseado no controle de acesso baseado em papel (RBAC), é destinado a diferentes cenários.
Use o modelo de organização quando precisar configurar papéis e permissões para uma organização.
Para um aplicativo B2C simples sem um nível de organização, use RBAC no nível do usuário / sistema.
Você pode usar tanto o modelo de organizaç ão quanto o RBAC no nível do usuário / sistema no Logto, permitindo uma abordagem mais robusta para atender aos seus requisitos específicos de negócios e produtos. Para entender o RBAC, consulte esta seção.