Tutorial: Gerar um JSON Web Token (JWT)

Este tutorial mostra como definir e implementar uma definição de API REST que gera um JSON Web Token (JWT).

Sobre este Tutorial

Neste tutorial, você concluirá as seguintes lições:
  1. Gere um JWT
  2. Testando a API de REST
Observação: o catálogo do Sandbox deve ser configurado para usar um DataPower® Gateway (v5 compatible) ou um DataPower API Gateway ou ambos. Consulte Criação e configuração de catálogos.

Gere um JWT

Crie uma API REST para gerar e retornar um JSON Web Token (JWT).

Para adicionar e definir essa API REST, conclua as etapas a seguir:
  1. Faça login no API Manager.
  2. Na página de boas-vindas, clique no bloco Desenvolver APIs e produtos.

    Tela do API Manager

  3. Clique em Add > API.

    Tela Adicionar API

  4. Certifique-se de que OpenAPI 3.0 esteja selecionado.
  5. Selecione New OpenAPI e clique em Next.

    Selecione OpenAPI

  6. Insira as informações apropriadas para criar uma definição de API de REST.
    1. No campo Title (Título ), digite JWT.
    2. Os campos Name e Base Path são preenchidos automaticamente com os termos jwt e /jwt, respectivamente.
    3. O campo Versão é preenchido automaticamente com 1.0.0.

    Tela de informações básicas

  7. Clique em Avançar.
  8. Na seção Secure (Seguro), clique em Next (Avançar ).

    API segura

  9. Você vê o progresso à medida que a nova API é criada. Quando isso for feito, você verá um Resumo. Clique em Edit API.

    Novo resumo da API

  10. Na barra lateral da página Design, selecione Paths (Caminhos ) para exibir o painel Paths (Caminhos ).
  11. Clique em Incluir +.

    Página Caminhos

  12. No campo Path (Caminho ), digite /gen.
  13. Clique em Adicionar.

    Adicionar uma informação de caminho

  14. Role para baixo. Na seção Parameters (Parâmetros ), clique em Add +.

    Incluir parâmetros

    1. Digite iss-claim no campo Parameter name (Nome do parâmetro ).
    2. Selecione o endereço header na lista Located In (Localizado em ).
    3. Digite https://myidp.ibm.com para fazer a correspondência no campo Description (Descrição ).
    4. Marque a caixa de seleção Required (Obrigatório ).
    5. Clique em Adicionar.

      Caminho Configurações de parâmetros

    6. Role para baixo. Na seção Schema, clique em Create

      Incluir esquema

    7. Selecione string na lista Type (Tipo ).
    8. Clique em Adicionar.

      Incluir Cadeia

  15. Depois de criar o parâmetro, clique em Save (Salvar ).
  16. Para adicionar um segundo parâmetro. Conclua as seguintes etapas:
    1. Na barra lateral da página Design, selecione Parameters (Parâmetros ) no caminho /gen recém-criado.

      Barra lateral de parâmetros

    2. Clique em Incluir +.

      Página de parâmetros

    3. Digite aud-claim no campo Parameter name (Nome do parâmetro ).
    4. Selecione header na lista Located In (Localizado em ).
    5. Digite Enter ClientID1 para fazer a correspondência no campo Description (Descrição ).
    6. Marque a caixa de seleção Required (Obrigatório ).
    7. Clique em Adicionar.

      Caminho Configurações de parâmetros

    8. Role para baixo. Na seção Schema (Esquema ), clique em Create (Criar ).

      Incluir esquema

    9. Selecione string na lista Type (Tipo ).
    10. Clique em Adicionar.

      Incluir Cadeia

  17. Depois de criar o segundo parâmetro, clique em Save (Salvar ).
  18. Clique em Componentes > Respostas.
  19. Clique em Adicionar.

    Página de respostas

  20. O campo Nome da resposta é preenchido automaticamente com 200.
  21. Digite 200 OK no campo Description (Descrição ).

    Incluir esquema

  22. Clique em Adicionar.
  23. Depois de criar a resposta, clique em Salvar.
  24. Selecione a guia Gateway.
  25. Passe o mouse sobre o nó de política existente e clique no ícone da lixeira para excluí-lo.

    Página do gateway

  26. Em Ações, clique em Definir variável para adicionar a ação à linha de fluxo de processamento. Um painel de configuração é aberto automaticamente.
  27. Clique em Incluir Ação.

    Adicionada a ação Definir variável

  28. Digite hs256-key no campo Set (Definir).
  29. Selecione string na lista Type (Tipo ).
  30. Digite um JWK no campo Value (Valor ). A seguir há um exemplo. { "alg": "HS256", "kty": "oct", "use": "sig", "k": "o5yErLaE-dbgVpSw65Rq57OA9dHyaF66Q_Et5azPa-XUjbyP0w9iRWhR4kru09aFfQLXeIODIN4uhjElYKXt8n76jt0Pjkd2pqk4t9abRF6tnL19GV4pflfL6uvVKkP4weOh39tqHt4TmkBgF2P-gFhgssZpjwq6l82fz3dUhQ2nkzoLA_CnyDGLZLd7SZ1yv73uzfE2Ot813zmig8KTMEMWVcWSDvy61F06vs_6LURcq_IEEevUiubBxG5S2akNnWigfpbhWYjMI5M22FOCpdcDBt4L7K1-yHt95Siz0QUb0MNlT_X8F76wH7_A37GpKKJGqeaiNWmHkgWdE8QWDQ", "kid": "hs256-key" }

    Setvar propriedades

  31. Feche o painel de propriedades. Clique em Salvar.
  32. Em Ações, clique em Gerar JWT para adicionar a ação à linha de fluxo de processamento após o ícone de variável definida. Um painel de configuração é aberto automaticamente.
    Observação: se o painel Fluxo de montagem de construção não estiver visível, clique em + próximo à variável de conjunto para exibir o painel.

    Ação JWT Generate adicionada

  33. Digite request.headers.iss-claim no campo Issuer Claim (Reivindicação do emissor ).
  34. Digite request.headers.aud-claim no campo Audience Claim (Reivindicação de público ).
  35. Digite hs256-key no campo Sign JWK variable name (Nome da variável Sign JWK ).
  36. Selecione HS256 na lista Cryptogrpahic Algorithm (Algoritmo criptográfico ).

    Propriedades do JWT Generate

  37. Feche o painel de propriedades. Clique em Salvar.
  38. Em Actions (Ações ), clique em GatewayScript para adicionar a ação à linha do fluxo de processamento após o ícone Gerar JWT. Um painel de configuração é aberto automaticamente.
  39. Insira o código a seguir:
    var apim = require('apim');
    apim.setvariable('message.body',apim.getvariable('generated.jwt'));

    GatewayScript ação adicionada

    Observação: Talvez você veja o seguinte aviso ao adicionar a ação GatewayScript ação: This gatewayscript policy should not use the apim module which is only for migrating old APIs. Você pode ignorar esse aviso e prosseguir.
  40. Feche o painel de propriedades. Clique em Salvar.

Testando a API de REST

Observação: devido às restrições de compartilhamento de recursos entre origens (CORS), a ferramenta de teste de montagem não pode ser usada com os navegadores Chrome ou Safari na plataforma macOS Catalina.
Para testar a API de REST, conclua as etapas a seguir:
  1. Clique em Testar.
    Observação: Não é possível testar a API REST se você não tiver configurado nenhum gateway para o catálogo e uma mensagem de erro for exibida na guia Testar.Testar
  2. Clique em Target configuration (Configuração de destino ) e defina Auto-publish (Publicação automática ) como On (Ativada ).
  3. Clique em Salvar preferências. O status da API é mostrado como Online na guia Teste.
  4. Digite https://myidp.ibm.com no campo Value correspondente ao parâmetro iss-claim.
  5. Digite ClientID1 no campo Value correspondente ao parâmetro aud-claim.
  6. Clique em Enviar.

    Página de teste e botão de envio

  7. A resposta contém o JWT gerado.

    Resultado do teste

Gerencie sua definição de API

Agora que sua nova API funciona corretamente, você pode gerenciar essa API. Para ver suas opções imediatas, siga as etapas a seguir.

  1. Clique no ícone Develop (Desenvolver ) Desenvolver ícone na barra de navegação.

    Barra de navegação

  2. Clique no ícone Options (Opções) O ícone de gerenciamento ao lado da API JWT.

    Gerenciar API

  3. Selecione Download.

O Quê foi Feito Neste Tutorial

Neste tutorial, você concluiu as seguintes atividades:
  • Criou uma nova definição de API que gera um JSON Web Token (JWT).
  • Testou a nova API.