Qual é exatamente a diferença entre os dois cabeçalhos a seguir:
Authorization : Bearer cn389ncoiwuencr vs Authorization : cn389ncoiwuencr
Todas as fontes que examinei, define o valor do cabeçalho “Autorização” como “Portador” seguido pelo token real. No entanto, não fui capaz de compreender o significado disso. E se eu simplesmente colocar o token no cabeçalho de autorização?
Comentários
- Existem outros métodos de autenticação http, como básico ou resumo . Suponho que ' é bom ser capaz de distingui-los.
- A questão é especificamente sobre a autenticação baseada em token, que geralmente é feita após a autenticação básica para que o usuário não ' não precisa fornecer o nome de usuário e a senha em cada solicitação.
- Eu também tive uma pergunta semelhante. Eu queria escolher um esquema para uma implementação de token de curta duração, que não seja totalmente compatível com Oauth 2.0. Eu queria saber se eu poderia usar Bearer ou qualquer valor não padrão sem ter problemas com a interpretação dos proxies ' e servidores '. O mais próximo que cheguei de encontrar uma resposta foi: stackoverflow.com/questions/7802116/… e stackoverflow.com/questions/8463809/…
- Os servidores geralmente retornam um token pela mesma rota ou seja, " Autorização: Portador " da resposta HTTP? Ou quase sempre faz parte do corpo da resposta?
- Esta página de autenticação HTTP no MDN é muito útil para a discussão.
Resposta
O Authorization: <type> <credentials>
padrão foi introduzido pelo W3C em HTTP 1.0 , e foi reutilizado em muitos lugares desde então. Muitos servidores da web oferecem suporte a vários métodos de autorização. Nesses casos, enviar apenas o token não é suficiente.
Os sites que usam o formato
Authorization : Bearer cn389ncoiwuencr
provavelmente estão implementando OAuth 2.0 tokens de portador . A Estrutura de autorização OAuth 2.0 define uma série de outros requisitos para manter a autorização segura, por exemplo, exigindo o uso de HTTPS / TLS.
Se você estiver se integrando a um serviço que está usando OAuth 2.0, é uma boa ideia se familiarizar com a estrutura para que o fluxo que você está usando seja implementado corretamente e evitando vulnerabilidades desnecessárias. Existem vários bons tutoriais disponíveis online.
Comentários
- I ' Não estou familiarizado com a API do MS Graph, pode ser uma peculiaridade de sua implementação.
- Isso é o que eu estava pensando. Dado seu conhecimento de Bearer Tokens e tokens em geral, você pode ver alguma segurança implicações pelo fato de que a API aceita o token wi Não é a palavra-chave Bearer?
- Na verdade não, mas concordo com um comentário nessa pergunta – se a implementação deles difere neste ponto, o que mais é diferente? Dito isso, há várias implementações semelhantes a OAuth por aí que se desviam dos RFCs. Isso não significa automaticamente que suas implementações são menos seguras.
Resposta
Muito antes da autorização do portador, este cabeçalho foi usado para autenticação básica . Para interoperabilidade, o uso desses cabeçalhos é regido pelas normas W3C, então, mesmo se você estiver lendo e escrevendo o cabeçalho, você deve segui-los. O Bearer distingue o tipo de autorização que você está usando, por isso é importante.
Resposta
Um Bearer Token é definido no cabeçalho de autorização de cada solicitação HTTP de ação embutida e o próprio Bearer determina o tipo de autenticação.
Ref https://developers.google.com/gmail/markup/actions/verifying-bearer-tokens
Comentários
- Esta resposta é específica para desenvolvedores de gmail, não para todos os desenvolvedores da web. Uma ' ação ' é uma conceito do gmail.