Quando um aplicativo cliente inclui um Token da Web JSON (JWT, na sigla em inglês) em uma solicitação para uma API, o Extensible Service Proxy (ESP) valida o JWT antes de enviar a solicitação ao back-end da API. Nesta página, você verá informações sobre solução de problemas se a validação do JWT falhar e o ESP retornar um erro na resposta ao cliente. Consulte RFC 7519 para saber mais sobre JWTs.
Erro:401: Jwt issuer is not configuredIsso pode acontecer se, ao implantar o ESPv2 no Cloud Run, a sinalização
  --allow-unauthenticated não for usada no comando gcloud run deploy.
  Se a sinalização não for usada, o token JWT será interceptado
e verificado pelo servidor IAM de <a=" docs="" managing-access"="" run="" securing="">controle
de acesso do Cloud Run e não do ESPv2. O IAM pode usar um emissor diferente de
  ESPv2.
</a=">
BAD_FORMAT
Verifique o seguinte:
- Verifique se o JWT contém um JSON válido.
 - Se o cabeçalho JWT tem o campo 
"alg"e é definido como um dos seguintes:"RS256","HS256","RS384","HS384","RS512"ou"HS512". - Verifique o tipo de dados dos seguintes campos, se eles estiverem presentes, no payload do JWT:
 - Se as declarações 
"iat"(emitido às),"exp"(prazo de validade) e"nbf"(não antes) são números maiores que 0 e não strings. - Se os campos 
"sub"(assunto),"iss"(emissor) e"jti"(ID do JWT) são strings. - Se a declaração 
"aud"(público-alvo) é uma string ou uma matriz de strings. - Certifique-se de que as seguintes declarações estejam presentes no payload do JWT: 
"sub"(assunto),"iss"(emissor) e"aud"(público-alvo). 
A seguir, você encontra um exemplo de token decodificado do JWT válido:
{
  "alg": "RS256",
  "typ": "JWT",
  "kid": "42ba1e234ac91ffca687a5b5b3d0ca2d7ce0fc0a"
}
Payload:
{
  "iss": "myservice@myproject.iam.gserviceaccount.com",
  "iat": 1493833746,
  "aud": "myservice.appspot.com",
  "exp": 1493837346,
  "sub": "myservice@myproject.iam.gserviceaccount.com"
}
TIME_CONSTRAINT_FAILURE
Use jwt.io (em inglês) para decodificar o JWT e verifique o seguinte:
- A declaração 
"exp"(prazo de validade) existe. - O valor da declaração 
"exp"(prazo de validade) é uma data e hora no futuro. A data e a hora atuais devem ser anteriores ao prazo de validade e ao horário listados na declaração"exp". - A declaração 
"nbf"(não antes de), se presente, é uma data e um horário no passado. A data e hora atuais devem ser posteriores ou iguais à data e hora listadas na declaração"nbf". 
UNKNOWN
Use jwt.io (em inglês) para decodificar o JWT e verifique o seguinte:
- Se a declaração 
"iss"(emissor) for um endereço de e-mail, as declarações"sub"(assunto) e"iss"devem ser as mesmas. Isso garante que o JWT seja autoemitido para emissores por e-mail. 
Erro: KEY_RETRIEVAL_ERROR
- Verifique se o URI de chave pública especificado no campo
jwks_urina seçãoauthentication: providersdo arquivo de configuração.yamldo gRPC está correto e é válido. 
Erro: Issuer not allowed
- Verifique se a declaração 
"iss"(emissor) no token JWT corresponde ao campoissuerna seçãoauthentication: providersdo arquivo de configuração.yamldo gRPC. 
Erro: Audience not allowed
Se a declaração "aud" (público) em um token do JWT corresponder ao nome do serviço do Endpoints, o ESP validará o público e ignorará os valores audiences no arquivo de configuração .yaml do gRPC. Por
exemplo, se o nome do serviço for
"myservice.endpoints.example-project-12345.cloud.goog",
um JWT com "aud" definido como
"myservice.endpoints.example-project-12345.cloud.goog"
ou "https://myservice.endpoints.example-project-12345.cloud.goog" será um público-alvo válido.
Se a declaração "aud" não for igual ao nome do serviço do Endpoints:
- Verifique se a declaração 
"aud"no JWT corresponde a um dos valoresaudiencesespecificados na seçãoauthentication: providersdo arquivo de configuração.yamldo gRPC.