A respeito de JWT (JSON web tokens), julgue o próximo item.J...
A respeito de JWT (JSON web tokens), julgue o próximo item.
JWT são usados para autenticar usuários antes que eles
forneçam credenciais válidas, já que a aplicação que utiliza
JWT necessita do UserID.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Vamos entender por que a alternativa correta é a E (errado).
O enunciado afirma que os JWT (JSON Web Tokens) são usados para autenticar usuários antes que eles forneçam credenciais válidas, já que a aplicação que utiliza JWT necessita do UserID. Isso está incorreto. Vamos explorar o porquê.
Primeiro, é importante entender o que é um JWT. O JWT é um padrão open usado para transmitir informações de forma compacta e segura entre diferentes partes como um objeto JSON. Este token é geralmente usado para autenticação e troca de informações seguras na web.
Autenticação com JWT:
Quando um usuário tenta acessar um sistema, ele primeiramente precisa fornecer suas credenciais (como nome de usuário e senha). Após a validação dessas credenciais, o servidor gera um JWT que é enviado ao usuário.
Este token contém informações codificadas (como o UserID) e é assinado digitalmente para garantir sua autenticidade. A partir desse momento, o usuário utiliza esse token para acessar recursos protegidos. O servidor, então, verifica a assinatura do JWT para confirmar sua validade antes de conceder acesso.
Por que a alternativa E está correta?
A alternativa está correta porque a afirmação do enunciado está errada. O JWT é utilizado após a validação das credenciais do usuário, não antes. Portanto, os usuários não são autenticados com JWT antes de fornecerem credenciais válidas.
Recapitulando:
- JWT são usados para autenticar usuários após a validação de suas credenciais.
- O enunciado está incorreto ao sugerir que o JWT é utilizado antes de fornecer credenciais válidas.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
A afirmação está incorreta.
JSON Web Tokens (JWT) são geralmente utilizados para autenticação **após** a verificação das credenciais do usuário, não antes.
### Como funciona a autenticação com JWT:
1. **Fornecimento de Credenciais**: O usuário primeiro fornece suas credenciais (como nome de usuário e senha) à aplicação.
2. **Verificação**: A aplicação verifica as credenciais em um sistema de autenticação (por exemplo, banco de dados).
3. **Geração do JWT**: Se as credenciais forem válidas, a aplicação gera um JWT, que contém informações sobre o usuário, como seu UserID, e, opcionalmente, outras informações. Esse token é assinado digitalmente pelo servidor para garantir sua integridade.
4. **Uso do JWT**: O JWT é então enviado de volta ao cliente (por exemplo, um navegador ou aplicativo). O cliente armazena o JWT e o inclui em cada solicitação subsequente para acessar recursos protegidos da aplicação. O servidor pode validar o JWT para verificar a identidade do usuário sem a necessidade de reenviar as credenciais.
### Correção:
- JWTs são usados para autenticar usuários **depois** que eles fornecem credenciais válidas, e não antes.
- O **UserID** ou outras informações do usuário são incluídas no JWT **após** a autenticação, permitindo que o servidor identifique o usuário em solicitações subsequentes.
Portanto, o JWT serve como um meio de identificar e autenticar o usuário em requisições subsequentes, depois que ele já foi autenticado inicialmente com suas credenciais.
UserId está ligado ao OpenId, é uma técnica que é usada em conjunto com o JWT no fluxo do OAuth 2.
O userId / OpenId cuida da parte de AUTENTICAÇÃO.
O JWT (JSON Web Token) cuida da parte de AUTORIZAÇÃO. Caso conheça a estrutura do token JWT, no caso dele não ser Opaco ele vai trazer uma seção de SCOPE nela é informada as ROLES do usuário, ou seja, os papéis que o usuário pode performar no sistema em questão. Resumindo, as roles são as autorizações que o usuário possui.
Retomando ao cerne da questão o token JWT será utilizado após o usuário se autenticar, ai sim ele receberá um token JWT.
Gabarito ERRADO.
Qualquer sugestão ou crítica é bem vinda!
Gabarito (Errado)
Em uma aplicação web, o processo de autenticação geralmente funciona da seguinte maneira:
- O usuário envia suas credenciais (e-mail e senha) para o servidor em um endpoint de geração de token ( por exemplo);
- O servidor verifica as credenciais e, se estiverem corretas, gera um token JWT e o envia de volta ao cliente;
- Nas solicitações subsequentes, o cliente deve incluir esse token no cabeçalho de autorização de suas solicitações. Como, por exemplo: ;
- Quando o servidor recebe uma solicitação com um token JWT, ele pode verificar a assinatura e se o token é válido e não expirou, ele processa a solicitação.
Fonte: https://fastapidozero.dunossauro.com/06/
Tá errado pois o JWT não é usado ANTES e sim DEPOIS da autenticação, inclusive ele não serve para autenticar e sim autorizar depois que as credenciais válidas são fornecidas.
OAuth 2.0 ----> autorização
OpenID Connect -----> autenticação
............................................................................................................
O OpenID Connect realiza a autenticação para efetuar o login do usuário final ou para determinar se o usuário final já está logado.
O resultado da autenticação é retornado em um ID Token. Este token contém declarações (claims) que expressam informações como o emissor (issuer), o identificador do sujeito (Subject Identifier), quando a autenticação foi realizada, etc....
.
JWT (JSON Web Tokens) é o ID Token retornado. Pode ser usado para transmitir informações de forma segura entre partes.
ID Token —> JSON Web Token (JWT) que contém claims sobre o evento de autenticação. Pode conter outras claims.
Portanto, as informações sobre a autenticação realizada são retornadas em um JSON Web Token (JWT) chamado ID Token.
.....................................................................................
E o que eu faço com esse JWT?
- Autorização segura --> uma vez que o usuário esteja autenticado, cada requisição subsequente incluirá o JWT, permitindo que o usuário acesse rotas, serviços e recursos permitidos com esse token.
- Troca de informações --> como JWT podem ser assinados, então é possível ter certeza de que os remetentes são quem dizem ser. E também, como a assinatura é calculada usando o header e o payload do token, também é possível verificar se o conteúdo não foi adulterado.
.....................................................................................
O JSON Web Token (JWT) é um padrão aberto (RFC 7519) que define uma forma compacta e autocontida de transmitir informações com segurança entre partes como um objeto JSON.
Essas informações são verificadas e confiáveis porque são assinadas digitalmente.
Os JWTs podem ser assinados usando uma chave secreta (com o algoritmo HMAC) ou um par de chaves públicas/privadas usando RSA ou ECDSA.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo