Autenticação versus autorização


626

Qual é a diferença no contexto de aplicativos da web? Eu vejo muito a abreviação "auth". Significa autenticação de autenticação ou autenticação ? Ou são os dois?


51
lembre-se disto: autenticação verifica credenciais, autorização verifica permissões.
Onur Yıldırım

1
Duplicação entre sites: serverfault.com/q/57077
Kyll

Recentemente, para as abreviações que eu vi authnpara autenticação e authzautorização
jdf 15/01/19

Respostas:


865

Autenticação é o processo de verificar se alguém realmente é quem afirma ser.

Autorização refere-se a regras que determinam quem tem permissão para fazer o que. Por exemplo, Adam pode estar autorizado a criar e excluir bancos de dados, enquanto a Usama está autorizada apenas a ler.

Os dois conceitos são completamente ortogonais e independentes, mas ambos são centrais para o design de segurança, e a falha em corrigir um dos dois abre as possibilidades de comprometimento.

Em termos de aplicativos da Web, falando muito bem, a autenticação é quando você verifica as credenciais de logon para ver se reconhece um usuário como logado, e a autorização é quando você pesquisa em seu controle de acesso se permite que o usuário exiba, edite ou exclua ou criar conteúdo.


32
As definições parecem boas, mas certamente não parecem independentes. Conforme definido, a autorização também não implica autenticação ? Como você pode permitir a operação de exclusão do banco de dados de Adam se você duvida que ele é Adam? Em outras palavras, se a operação de exclusão de Adam for autorizada, espero que isso implique que ele seja autenticado.
Timo

7
@Timo: Um aplicativo provavelmente desejará fazer as duas coisas, mas são conceitos ortogonais, independentemente. Seu chefe pode estar revisando as autorizações da equipe para acessar componentes críticos do negócio, o jato da empresa e a geladeira de cerveja sem se preocupar com qual indivíduo em particular no feed de CFTV corresponde aos nomes da planilha. O último seria a preocupação do segurança.
Kerrek SB

1
Os conceitos são definitivamente ortogonais. A autenticação não está necessariamente provando sua identidade. Poderia ser uma prova sobre você, por exemplo, idade. Quando você bebe, autentica sua idade mostrando um ID. Então você pode estar autorizado a beber, dependendo da sua idade e da jurisdição em que se encontra (você pode beber se> 21 nos EUA> 18 na Europa) #
1955 David Brossard

1
@Sinjai: Eu acho que o ponto é que essas são preocupações ortogonais e podem ser tratadas por instalações separadas: por exemplo, o segurança (confiável) na porta pode estabelecer a idade do cliente, e diferentes serviços dentro do estabelecimento podem ter diferentes idades. limites, mas todos usarão o valor que receberam do segurança para tomar decisões de admissão.
Kerrek SB 28/02/19

1
Outra maneira de ver (no contexto do exemplo do bar) seria considerar que a autenticação é o processo de correspondência da foto no cartão de identificação com a pessoa à sua frente, enquanto a autorização é o processo de validação da idade deles. atende aos requisitos legais. Na minha opinião, o elemento desse mix que faz com que as linhas fiquem embaçadas é que ambos os testes também sejam conhecedores e endurecidos contra falsificações (o ID é falso) que a maioria das pessoas tende a ver apenas como uma preocupação de autenticação do que igualmente importante para a certificação auth-c e auth-z.
Ryan Hansen

660

Em resumo, por favor. :-)

Autenticação = login + senha (quem você é)

Autorização = permissões (o que você tem permissão para fazer)

É provável que uma "autenticação" curta se refira ao primeiro ou a ambos.


3
Doce como um pedaço de bolo :)
devansvd

Eu gosto disso, curto e doce.
Rei

5
Ainda não entendo por que um cabeçalho de autorização HTTP carrega informações de autenticação ... Não é uma nomeação infeliz?
Jens

@ Jens resposta curta: sim. Roy Fielding não sabia melhor naquele momento ... ;-) </tongue-in-cheek> #
Per Per Lundberg

@ Jens, também estou pensando nisso. Acho a intuição desta resposta útil. Como o HTTP é sem estado , as informações de autenticação devem ser enviadas junto com todas as solicitações, não apenas as solicitações de início e de encerramento (como estabelecer uma sessão segura e enviar solicitações sem autenticação entre elas). Portanto, esse cabeçalho da solicitação deve ser uma autorização , porque quase sempre carrega outras intenções (buscar dados, img, ...), não apenas autenticação .
Minh Nghĩa

83

Como Autenticação x Autorização coloca:

A autenticação é o mecanismo pelo qual os sistemas podem identificar com segurança seus usuários. Os sistemas de autenticação fornecem respostas para as perguntas:

  • Quem é o usuário?
  • O usuário é realmente quem ele / ela representa?

A autorização , por outro lado, é o mecanismo pelo qual um sistema determina qual nível de acesso um usuário autenticado específico deve ter para proteger os recursos controlados pelo sistema. Por exemplo, um sistema de gerenciamento de banco de dados pode ser projetado para fornecer a certos indivíduos especificados a capacidade de recuperar informações de um banco de dados, mas não a capacidade de alterar dados armazenados no banco de dados, enquanto oferece a outros indivíduos a capacidade de alterar dados. Os sistemas de autorização fornecem respostas para as perguntas:

  • O usuário X está autorizado a acessar o recurso R?
  • O usuário X está autorizado a executar a operação P?
  • O usuário X está autorizado a executar a operação P no recurso R?

Veja também:


34

Prefiro Verificação e Permissões a Autenticação e Autorização.

É mais fácil na minha cabeça e no meu código pensar em "verificação" e "permissões" porque as duas palavras

  • não parece igual
  • não tem a mesma abreviação

Autenticação é verificação e Autorização está verificando permissão (s). Auth também pode significar, mas é usado com mais frequência como "User Auth", ou seja, "User Authentication"


2
A verificação IMHO parece ter um escopo um pouco mais aberto que a autenticação, mesmo que a autenticação pareça algum tipo de verificação, nem toda verificação é uma autenticação ... então eu diria que um contexto é sempre necessário: verificação de acesso do usuário etc., autenticação parece sempre acontecer no campo de "ele é realmente o cara / máquina?" (acerte-me se eu estiver errado, não sou um falante nativo, mas: "verifique" as INFORMAÇÕES fornecidas são precisas versus as autenticações parecem ter algo a ver com saber que a pessoa / máquina é a pessoa que ela finge ser)
Beachwalker

14

A confusão é compreensível, pois as duas palavras soam semelhantes e os conceitos são frequentemente relacionados e usados ​​juntos. Além disso, como mencionado, a abreviação Auth , normalmente usada , não ajuda.

Outros já descreveram bem o que significam autenticação e autorização. Aqui está uma regra simples para ajudar a manter os dois claramente separados:

  • Auth enti cação valida a sua Id enti dade (ou autenticidade , se você preferir que)
  • Autor ização valida o seu autor dade, ou seja, o seu direito de acesso e, possivelmente, mudar alguma coisa.

12

Eu tentei criar uma imagem para explicar isso nas palavras mais simples

1) Autenticação significa "Você é quem diz ser?"

2) Autorização significa "Você deve ser capaz de fazer o que está tentando fazer?".

Isso também é descrito na imagem abaixo.

insira a descrição da imagem aqui

Tentei explicá-lo da melhor maneira possível e criei uma imagem do mesmo.


4

Autenticação é o processo de verificação da identidade proclamada.

  • por exemplo, nome de usuário / senha

Geralmente seguido de autorização , que é a aprovação de que você pode fazer isso e aquilo.

  • por exemplo, permissões

Esta resposta já é dada com uma explicação profunda.
Sonu patel 02/01

3

Adicionando a resposta de @ Kerrek;

Autenticação é um formulário Generalizado (Todos os funcionários podem fazer login na máquina)

A autorização é um formulário especializado (mas o administrador pode instalar / desinstalar apenas o aplicativo na máquina)


1
A palavra "pode" se aplica apenas à autorização. A autenticação tem pouco ou nada a ver com o login. Eu poderia muito bem autenticar que você é o Boobalan de várias maneiras (não apenas nome de usuário / senha). Depois de me autenticar e saber quem você é, eu poderia muito bem NÃO autorizá-lo a fazer login ou fazer qualquer coisa no meu site. Você está autenticado, mas não pode fazer diddley-squat. É confuso e incorreto usar a palavra "lata" ao falar sobre autenticação.
Suamere

3

Autenticação é o processo de verificação do seu nome de usuário e senha de login.

Autorização é o processo de verificação de que você pode acessar alguma coisa.


3
Essa "resposta" não adiciona nada às respostas já fornecidas.
Ojonugwa Jude Ochalifu

1

Definições

Autenticação - Você é a pessoa que afirma ser?

Autorização - Você está autorizado a fazer o que está tentando fazer?

Exemplo

Um aplicativo da web usa o Login do Google . Depois que um usuário faz login com êxito, o Google envia de volta:

  1. Um token JWT. Isso pode ser validado e decodificado para obter informações de autenticação . O token é assinado pelo Google? Qual é o nome e o email do usuário?
  2. Um token de acesso. Isso autoriza o aplicativo Web a acessar as APIs do Google em nome do usuário. Por exemplo, o aplicativo pode acessar os eventos do Google Agenda do usuário? Essas permissões dependem dos escopos solicitados e se o usuário permitiu ou não.

Além disso:

A empresa pode ter um painel de administração que permita ao suporte ao cliente gerenciar os usuários da empresa. Em vez de fornecer uma solução de inscrição personalizada que permitiria que o suporte ao cliente acesse esse painel, a empresa usa o Login do Google.

O token JWT (recebido do processo de login do Google) é enviado ao servidor de autorização da empresa para descobrir se o usuário tem uma conta do G Suite no domínio hospedado da organização (email@company.com)? E, se o fizerem, são membros do Google Group da empresa, criado para o suporte ao cliente? Se sim, para todas as opções acima, podemos considerá-las autenticadas .

O servidor de autorização da empresa envia ao aplicativo do painel um token de acesso. Esse token de acesso pode ser usado para fazer solicitações autorizadas ao servidor de recursos da empresa (por exemplo, capacidade de fazer uma solicitação GET para um terminal que envia de volta todos os usuários da empresa).


0

Authentication é um processo de verificação:

  • identidade do usuário em um sistema (nome de usuário, login, número de telefone, email ...) fornecendo uma prova (chave secreta, biometria, sms ...). Autenticação multifator como uma extensão.
  • verificação de e-mail usando digital signature
  • soma de verificação

Authorizationé o próximo passo depois Authentication. É sobre permissões / funções / privilégios para recursos. OAuth (Autorização Aberta) é um exemplo de Autorização

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.