Login

O que é autorização?

Autorização é o processo de dar a alguém a capacidade de acessar um recurso.

Essa definição pode não parecer muito clara, mas muitas situações na vida real podem ajudar a ilustrar o que a autorização significa para que você possa aplicar esses conceitos aos sistemas de computador.

Um bom exemplo é a propriedade de uma casa. O proprietário tem direitos de acesso total à propriedade (o recurso), mas pode conceder a outras pessoas o direito de acessá-la. Você diz que o proprietário autoriza pessoas a acessá-lo. Este exemplo simples nos permite introduzir alguns conceitos no contexto da autorização.

Por exemplo, acessar a casa é uma permissão, ou seja, uma ação que você pode executar em um recurso. Outras permissões da casa podem ser mobiliá-la, limpá-la, fazer reparos, etc.

Uma permissão se torna um privilégio (ou direito) quando é atribuída a alguém. Portanto, se você atribuir permissão ao decorador de interiores para mobiliar sua casa, estará concedendo esse privilégio a ele. \ nPor outro lado, o decorador pode pedir permissão para mobiliar a sua casa. Nesse caso, a permissão solicitada é um escopo, ou seja, a ação que o decorador gostaria de executar em sua casa.

Às vezes, a autorização está um pouco relacionada à identidade. Pense no processo de embarque em um avião. Você tem o seu cartão de embarque, que afirma que está autorizado a voar nesse avião. No entanto, não é o bastante para o agente do portão deixá-lo embarcar. Você também precisa de seu passaporte indicando sua identidade. Neste caso, o agente do portão compara o nome no passaporte com o nome no cartão de embarque e permite que você passe se os dados corresponderem.

No contexto de autorização, seu nome é um atributo de sua identidade. Outros atributos são sua idade, seu idioma, seu cartão de crédito e qualquer outra coisa relevante em um cenário específico.

O seu nome escrito no passaporte é uma claim, ou seja, uma declaração de que você tem esse atributo. Alguém que lê seu nome em seu passaporte pode ter certeza de seu nome porque confia no governo que emitiu seu passaporte.

O cartão de embarque, juntamente com a prova de identidade dos consumidores, representa uma espécie de ‘token de acesso’ que concede direitos de acesso para entrar no avião. \ nNos cenários descritos acima, você pode ver que o ato de autorizar permite que as entidades executem tarefas que outras entidades não podem concluir.

Sistemas de computador que usam autorização funcionam de maneira semelhante.

Como tratar a autorização em um sistema de computador

Em sistemas de computador, as regras de autorização fazem parte de uma disciplina de TI chamada Gestão de Identidades e Acesso (IAM). Dentro do IAM, a autorização e autenticação ajudam os gerentes de sistema a controlar quem tem acesso aos recursos do sistema e definir privilégios de cliente. A maneira como os sistemas de TI lidam com serviços de autorização é muito semelhante a um processo de controle de acesso do mundo real.

Caso de uso de autorização

Considere uma ferramenta de colaboração como o Google Docs.

O aplicativo permite criar e compartilhar documentos. Outras permissões incluem poder atualizar, excluir ou comentar em um documento. Se você é o proprietário de um documento, pode compartilhá-lo com outra pessoa e definir uma ou mais políticas de acesso. Por exemplo, você pode compartilhar seu documento com alguém deixando-o apenas adicionar comentários.

Neste cenário:

Recurso: é o documento

Proprietário do recurso: é o usuário que cria um documento, o proprietário do documento

Usuário autorizado: o usuário a quem são dados direitos de comentário pelo Proprietário do recurso

O diagrama a seguir representa a autorização para acessar o recurso: diagrama de processo de autorização

Definição da autorização usando estratégias de autorização

Existem várias estratégias de autorização diferentes que os sistemas de computador aproveitam durante a implantação do aplicativo. Os mais proeminentes são o RBAC (controle de acesso baseado em função) e o ABAC (controle de acesso baseado em atributo). Recentemente, a Auth0 tem investigado e resolvido o controle de acesso baseado em relacionamento (ReBAC). Existem várias outras alternativas, incluindo Controle de acesso baseado em gráficos (GBAC) e Controle de acesso facultativo (DAC). Cada uma dessas estratégias ajudará os desenvolvedores de aplicativos a lidar com diferentes requisitos de autorização e serviços de autorização.

Controle de acesso baseado em atributos (ABAC) e autorização

Ao usar o ABAC, um sistema de computador define se um usuário tem privilégios de acesso suficientes para executar uma ação com base em uma característica (atributo ou claim) associada a esse usuário. Um exemplo de caso de uso deste processo de autorização é uma loja online que vende bebidas alcoólicas. Um usuário da loja online precisa se registrar e fornecer prova de sua idade. No contexto da autorização, este cenário pode ser descrito da seguinte forma:

  • A loja online é o proprietário do recurso

  • A bebida alcoólica é o recurso

  • A idade do consumidor validada durante o processo de registro é uma claim, que é a prova do atributo de idade do usuário

A apresentação da claim de idade permite que a loja processe solicitações de acesso para comprar álcool. Assim, neste caso, a decisão de conceder acesso ao recurso é feita mediante o atributo do usuário.

Controle de acesso baseado em função (RBAC) e autorização

O RBAC, por outro lado, trata a autorização como permissões associadas a funções e não diretamente com os usuários. Uma função nada mais é que uma coleção de permissões. Por exemplo, imagine que você trabalha como gerente de departamento em uma organização. Nesta situação, você deve ter permissões que reflitam sua função, por exemplo, a capacidade de aprovar solicitações de férias e solicitações de despesas, atribuir tarefas e assim por diante. Para conceder essas permissões, um gerente de sistema primeiro cria uma função chamada "Gerente" (ou similar). Em seguida, atribui essas permissões a essa função e associa você à função "Gerente". Claro, outros usuários que precisam do mesmo conjunto de permissões podem ser associados a essa função.

A vantagem de usar o RBAC é que o gerenciamento de privilégios de autorização se torna mais fácil porque os gerentes de sistema podem lidar com usuários e permissões em massa, em vez de ter que lidar com eles um por um.

Controle de acesso baseado em relacionamento (ReBAC) e autorização

O controle de acesso baseado em relacionamento examina a seguinte questão em relação à autorização: “Este usuário tem uma relação suficiente com este objeto ou ação para que ele possa acessá-lo?” A relação pode vir através de um atributo do usuário, como ser um membro de um grupo de funções relacionado ao objeto, ou ter uma relação direta, como ser compartilhado em um documento. Às vezes, um acesso a um gráfico de grupos, funções, organizações e objetos requer a exploração de muitos nós para estabelecer uma relação entre um usuário e o que ele está tentando fazer. Quais relacionamentos são críticos para obter acesso e as permissões que esses relacionamentos concedem dependem do implementador do sistema de ReBAC.

A Auth0 lançou recentemente uma prévia da comunidade de desenvolvedores para nosso próximo produto Auth0 Fine Grained Authorization, com base no ReBAC. Saiba mais em nossa página de visualização do desenvolvedor para Fine Grained Authorization.

Quer saber mais?

Continue lendo a Introdução ao IAM para conhecer outros tópicos sobre a Gestão de Identidades e Acesso.

Quick assessment

Quais os motivos que levariam você a usar a autorização para controlar um recurso de computador? (selecione todos os que se aplicam)

Quick assessment

Qual estratégia de autorização permite criar coleções de permissões que podem ser facilmente atribuídas ou removidas para um usuário de uma só vez?

Comece a construir gratuitamente