Isolamento de inquilinos
Quanto mais você move os clientes para um modelo multi-inquilino, mais eles se preocupam com a possibilidade de um inquilino acessar os recursos de outro inquilino. Os sistemas SaaS incluem mecanismos explícitos que garantem que os recursos de cada inquilino, mesmo que sejam executados em uma infraestrutura compartilhada, sejam isolados.
Isso é o que chamamos de isolamento de inquilinos. A ideia por trás do isolamento de inquilinos é que sua arquitetura SaaS introduza estruturas que controlam rigorosamente o acesso aos recursos e bloqueiam qualquer tentativa de acessar recursos de outro inquilino.
Observe que o isolamento do inquilino é separado dos mecanismos gerais de segurança. Seu sistema suportará autenticação e autorização; no entanto, o fato de um usuário inquilino estar autenticado não significa que seu sistema tenha alcançado o isolamento. O isolamento é aplicado separadamente da autenticação e autorização básicas que podem fazer parte do seu aplicativo.
Para entender melhor isso, imagine que você tenha usado um provedor de identidade para autenticar o acesso ao seu sistema SaaS. O token dessa experiência de autenticação também pode incluir informações sobre a função de um usuário, que podem ser usadas para controlar o acesso desse usuário a uma funcionalidade específica do aplicativo. Essas estruturas fornecem segurança, mas não isolamento. Na verdade, um usuário pode ser autenticado e autorizado e ainda acessar os recursos de outro inquilino. Nada sobre autenticação e autorização necessariamente bloqueará esse acesso.
O isolamento do inquilino se concentra exclusivamente no uso do contexto do inquilino para limitar o acesso aos recursos. Ele avalia o contexto do inquilino atual e usa esse contexto para determinar quais recursos estão acessíveis para esse inquilino. Ele aplica esse isolamento a todos os usuários desse inquilino.
Isso fica mais desafiador à medida que analisamos como o isolamento de inquilinos é realizado em todos os diferentes padrões de arquitetura SaaS. Em alguns casos, o isolamento pode ser obtido com pilhas inteiras de recursos dedicadas a um inquilino, onde políticas de rede (ou mais grosseiras) impedem o acesso entre inquilinos. Em outros cenários, você pode ter recursos em reserva (itens em uma tabela do Amazon DynamoDB
Qualquer tentativa de acessar um recurso do inquilino deve ter como escopo apenas os recursos que pertencem a esse inquilino. O trabalho dos desenvolvedores e arquitetos de SaaS é determinar qual combinação de ferramentas e tecnologias suportará os requisitos de isolamento de seu aplicativo específico.