Este tutorial mostra como definir e implementar uma definição de API REST que gera um JSON Web Token (JWT).
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:
- Faça login no API Manager.
- Na página de boas-vindas, clique no bloco Desenvolver APIs e produtos.

- Clique em .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 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.
- Clique em Incluir Ação.

- Digite hs256-key no campo Set (Definir).
- Selecione string na lista Type (Tipo ).
- 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" }

- Feche o painel de propriedades. Clique em Salvar.
- 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.

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

- Feche o painel de propriedades. Clique em Salvar.
- 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.
- Insira o código a seguir:
var apim = require('apim');
apim.setvariable('message.body',apim.getvariable('generated.jwt'));

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.
- 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:
- 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.

- Clique em Target configuration (Configuração de destino ) e defina Auto-publish (Publicação automática ) como On (Ativada ).
- Clique em Salvar preferências. O status da API é mostrado como Online na guia Teste.
- Digite https://myidp.ibm.com no campo Value correspondente ao parâmetro iss-claim.
- Digite ClientID1 no campo Value correspondente ao parâmetro aud-claim.
- Clique em Enviar.

- A resposta contém o JWT gerado.

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.
- Clique no ícone Develop (Desenvolver )
na barra de navegação.
- Clique no ícone Options (Opções)
ao lado da API JWT.
- 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.