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?

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.


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


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
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.