como funciona a autenticação JSON Web Token (JWT)?

cabeçalho

o cabeçalho JWT consiste no tipo token e algoritmo usado para assinatura e codificação. Algoritmos podem ser HMAC, SHA256, RSA, HS256 ou RS256.

{ 
"typ": "JWT",
"alg": "HS256"
}

carga útil

carga útil consiste dos dados da sessão chamados de reivindicações. Abaixo estão alguns dos a norma afirma que podemos usar,

  1. Emitente(iss)
  2. Assunto (sub)
  3. Audiência (aud)
  4. tempo de Expiração (exp)
  5. Emitido em (iat)
{
"sub": "user10001",
"iat": 1569302116
}

declarações Personalizadas também podem ser incluídos no conjunto de afirmações. Ao usar os conjuntos de reclamações personalizados,

  • não coloque grandes dados em conjuntos de reivindicações. Os conjuntos de reivindicações deviam ser compactos.
  • não coloque informações sensíveis uma vez que, JWT pode ser descodificado facilmente.
{
"sub": "user10001",
"iat": 1569302116,
"role": "admin",
"user_id": "user10001"
}

Assinatura

Assinatura é a parte mais importante de um símbolo Web JSON(JWT). A Assinatura é calculada codificando o cabeçalho e a carga útil usando a codificação Base64url e concatenando-os com um separador de período. Que é então dado ao algoritmo criptográfico.

// signature algorithm
data = base64urlEncode( header ) + "." + base64urlEncode( payload )signature = HMAC-SHA256( data, secret_salt )

assim, quando o cabeçalho ou a carga útil muda, a Assinatura tem de ser calculada novamente. Apenas o fornecedor de identidade (IdP) tem a chave privada para calcular a assinatura que impede a adulteração do token.Como funciona?

basicamente, o provedor de identidade (IdP) gera um JWT certificando a identidade do Usuário e servidor de recursos decodifica e verifica a autenticidade do token usando sal secreto / chave pública.

  1. o utilizador faz sinal ao usar o nome de utilizador e a senha ou o google/facebook.
  2. Authentication server verifica as credenciais e emite um jwt assinado usando um sal secreto ou uma chave privada.
  3. o Cliente do usuário usa o JWT para acessar recursos protegidos, passando o JWT no cabeçalho de autorização HTTP.
  4. Resource server então verifica a autenticidade do token usando a chave secreta sal / pública.

Deixe uma resposta

O seu endereço de email não será publicado.

More: