Autenticação de API da Web Basic vs Bearer

93

Eu criei autenticação baseada em JWT em meu aplicativo Web API. Eu não sou capaz de descobrir a diferença entre

  1. Token básico
  2. Símbolo do portador

Alguém por favor pode me ajudar?

SharmaPattar
fonte

Respostas:

119

Os esquemas de autenticação Basic e Digest são dedicados à autenticação usando um nome de usuário e um segredo (consulte RFC7616 e RFC7617 ).

O esquema de autenticação do portador é dedicado à autenticação usando um token e é descrito pelo RFC6750 . Mesmo se esse esquema vier de uma especificação OAuth2, você ainda pode usá-lo em qualquer outro contexto onde os tokens são trocados entre um cliente e um servidor.

Quanto à autenticação JWT e por se tratar de um token, a melhor escolha é o esquema de autenticação Bearer. No entanto, nada o impede de usar um esquema personalizado que possa atender às suas necessidades.

Florent Morselli
fonte
41

A autenticação básica transmite credenciais como pares de ID de usuário / senha, codificados usando base64. O cliente envia solicitações HTTP com oAuthorizationcabeçalho que contém a palavraBasicpalavra seguida por um espaço e umabase64-encodedstring nome de usuário: senha.

Autorização: ZGVtbzpwQDU1dzByZA básico ==

insira a descrição da imagem aqui Nota: Para autenticação básica, como o ID do usuário e a senha são passados ​​pela rede como texto não criptografado (é codificado em base64, mas base64 é uma codificação reversível), o esquema de autenticação básico não é seguro. HTTPS / TLS deve ser usado em conjunto com a autenticação básica.


Autenticação do portador (também chamada autenticação de token ) tem tokens de segurança chamados tokens do portador. O nome "Autenticação do portador" pode ser entendido como " dar acesso ao portador deste token ". O token do portador é uma string criptografada, geralmente gerada pelo servidor em resposta a uma solicitação de login. O cliente deve enviar este token no cabeçalho de autorização ao fazer solicitações para recursos protegidos:

Autorização: Portador <token>

insira a descrição da imagem aqui

Nota: Da mesma forma que a autenticação básica, a autenticação do portador deve ser usada apenas em HTTPS (SSL) .

Para mais informações link1 , link2

fgul
fonte
então ambos são autorização e não realmente autorização. No primeiro, você envia uma string codificada em base64 e é autorizado, enquanto no último você recebe um token e o usa para acessar o recurso
tempestade cerebral de
qual a vantagem de passar o token sobre o nome de usuário / senha?
Muhammad Umer
@MuhammadUmer você pode revogar os tokens e também conceder a eles acesso granular (ou seja, apenas acesso de leitura).
Mihai
Eu encontrei a resposta e foi que você não tem que fazer db read with token, você pode usar crypto para validar token, melhor para microsserviços que não têm estado de sessão compartilhada, embora haja balanceador de carga que pode corrigir um usuário para um serviço, mas ainda tem desempenho.
Muhammad Umer