Configurar modelo de organização
Vamos passar pelo processo de configuração do recurso de modelo de organização via Logto Console.
Primeiro, navegue até Console > Modelo de organização. Você verá que o modelo de organização inclui duas partes: Papéis da Organização e Permissões da Organização. Um modelo de organização define políticas de controle de acesso compartilhadas (permissões e papéis) para várias organizações.
Configurar via Logto Console
Criar permissão da organização
As permissões da organização são uma parte fundamental do modelo de organização. Essas permissões são projetadas especificamente para organizações dentro do seu produto. Veja como gerenciá-las:
- Encontre a aba de permissões da organização: Vá para a aba "Permissões da organização" para ver suas permissões existentes.
- Adicionar, excluir e editar: Você pode facilmente adicionar novas permissões da organização, excluir as que não precisa e editar permissões existentes conforme necessário.
Criar papel da organização
Logto suporta dois tipos de papéis de organização, isso é o mesmo que o RBAC em nível de usuário / sistema:
- Usuário: Papéis que são atribuídos a usuários.
- Máquina para máquina: Papéis que são atribuídos a aplicativos máquina para máquina.
Logto permite que você defina papéis de organização de várias maneiras para se adequar à estrutura do seu sistema:
Papéis de organização apenas com permissões da organização
- Quando usar: Você tem endpoints separados para usuário / sistema e organização.
- Explicação: Esta é a abordagem mais simples se a arquitetura técnica do seu produto e o design da API separarem claramente os recursos em nível de usuário / sistema dos recursos da organização. Seus papéis de organização incluirão apenas as permissões que você define para a organização.
Papéis de organização apenas com permissões de API
- Quando usar: O controle de acesso em nível de usuário / sistema e em nível de organização é tratado pelos mesmos endpoints.
- Explicação: Escolha isso se você quiser gerenciar todas as permissões através de recursos de API unificados.
Papéis de organização com permissões mistas de API e organização
- Quando usar: Você tem endpoints separados definidos para seu produto para nível de usuário / sistema e nível de organização, mas alguns papéis de usuário exigem uma mistura de permissões em nível de usuário e em nível de organização.
- Explicação: Isso oferece mais flexibilidade, mas também pode ser mais complexo de gerenciar.
Configurar via Logto Management API
Tudo o que você pode fazer no Console também pode ser feito através do Management API, incluindo: Gerenciar modelo de organização para criar, excluir ou editar permissões e papéis da organização.
Para uma lista completa de capacidades, consulte nossa referência de API:
Com o Logto Management API, você pode criar experiências personalizadas de organização, como permitir que administradores de organizações se autoatendam e criem organizações. Confira esta seção para habilitar mais recursos e gerenciamento em nível de organização.
Lidar com mudança de permissão de membro
Semelhante ao RBAC de API, as permissões de membros podem ser alteradas durante uma sessão -- por exemplo, eles podem receber novos papéis ou ter permissões de papéis existentes modificadas.
O que acontece quando uma permissão de membro muda? Existem dois casos.
Nenhuma nova permissão introduzida no sistema
Os tokens de acesso da organização atuais (também conhecidos como token de organização) permanecerão válidos até que expirem, mesmo após as permissões da organização de um usuário serem alteradas. No entanto, novas permissões serão refletidas em tokens de organização subsequentes, e quaisquer permissões revogadas serão omitidas.
Os tokens de organização têm um tempo de expiração fixo que não pode ser alterado, ao contrário dos tokens de acesso genéricos.
Chame periodicamente os endpoints do Logto Management API ou estabeleça uma conexão de longa duração (por exemplo, usando WebSocket) para buscar dinamicamente as permissões da organização do usuário. Ao detectar mudanças, limpe o token de organização existente e os tokens recém-emitidos refletirão automaticamente as mudanças no escopo de permissão da organização.
curl \
-X GET https://[tenant_id].logto.app/api/organizations/{id}/users/{userId}/scopes \
-H "Authorization: Bearer $ORGANIZATION_TOKEN"
Quando mudanças de permissão forem detectadas, limpe o token de organização do armazenamento primeiro e, em seguida, chame o método SDK getOrganizationToken(organizationId)
para adquirir um novo. O token de organização recém-emitido deve refletir as mudanças de permissão.
Nova permissão é introduzida no sistema e atribuída a um membro
Isso acontece quando novas permissões são introduzidas no seu modelo de organização. Nesse caso, você precisará primeiro incluir os novos escopos de permissão introduzidos ao inicializar o cliente Logto. Por exemplo:
new LogtoClient({
appId: 'your-app-id',
redirectUrl: 'your-redirect-url',
scopes: [
'urn:logto:scope:organizations',
// ... seus outros escopos de permissão de organização existentes,
'new-organization-permission-scope',
],
});
Em segundo lugar, cada um dos seus aplicativos cliente precisará re-consentir ou re-login dos usuários para receber a mudança de permissão. Então, o novo escopo de permissão será refletido em novos tokens de organização.
Exemplo de código para re-consentimento:
signIn({ redirectUrl: 'your-redirect-url', prompt: 'consent' });