jwt-generate

Use a política de segurança Gerar JWT em IBM® API Connect para gerar um JSON Web Token (JWT).

Suporte de gateway

Tabela 1. Tabela mostrando quais gateways suportam a política e a versão da política correspondente
Gateway Versão da política
DataPower® Gateway (v5 compatible) 1.0.0
DataPower API Gateway 2.1.0

Este tópico descreve como configurar a política em sua origem OpenAPI ; para obter detalhes sobre como configurar a política na interface com o usuário do conjunto, consulte Gerar JWT.

Nota:
  • Para tipos de algoritmo HS256, HS384 e HS512, os objetos criptográficos referenciados devem ser um Chave secreta compartilhada.
  • Para os tipos de algoritmo RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512 os objetos criptográficos referenciados devem ser uma Chave de criptografia (chave privada).
  • O material criptográfico pode ser fornecido por meio de um JSON Web Key (JWK).
  • Se um objeto criptográfico e um JWK forem ambos especificados, o objeto criptográfico será usado para assinar o JWT.

Sobre

A política jwt-generate tem a seguinte estrutura:
- jwt-generate:
  version: version
  title: title
  description: description
  jwt: json_web_token
  jti-claim: jwt_id_claim
  iss-claim: issuer_claim
  exp-claim: validity_period
  sub-claim: subject_claim
  aud-claim: audience_claim
  jws-jwk: sign_jwk_variable_name
  jws-alg: cryptographic_algorithm
  jws-crypto: sign_crypto_object
  custom-kid-value-jws: jws.kid
  jwe-enc: encryption_algorithm
  jwe-jwk: encrypt_jwk_variable_name
  jwe-alg: key_encryption_algorithm
  jwe-crypto: encrypt_crypto_object
  custom-kid-value-jwe: jwe.kid

Propriedades

A tabela a seguir descreve as propriedades de política:
Tabela 2. Gerar JWT propriedades de política
Propriedade Necessário Descrição Tipo de dados
version True O número de versão da política sequência
title Não O título da política. sequência
description Não Uma descrição da política. sequência
jwt Não A variável de tempo de execução na qual colocar o JWT que é gerado.

O valor padrão é: generated.jwt. No entanto, se não configurada, o JWT gerado será gravado no Cabeçalho de autorização como um token de Acesso.

sequência
jti-claim Não Indica se uma solicitação de JWT ID (jti) deve ser incluída no JWT.

Se selecionada, a propriedade será configurada como true e um UUID será gerado e configurado como o valor de solicitação de JTI.

booleano
iss-claim True Variável de tempo de execução a partir da qual a sequência de solicitação do emissor (iss) pode ser recuperada. Esta solicitação representa o diretor que emitiu o JWT.

O valor padrão é: iss.claim

sequência
sub-claim Não Variável de tempo de execução a partir da qual a sequência de solicitação do assunto (sub) pode ser recuperada. sequência
aud-claim Não Variável de tempo de execução a partir da qual a sequência de solicitação do público (aud) pode ser recuperada. Variáveis múltiplas são configuradas usando uma sequência separada por vírgula. sequência
exp-claim True A duração (em segundos) que é incluída na data e hora atuais em que o JWT é considerado válido.

O valor padrão é 3600.

número inteiro
private-claims Não Variável de tempo de execução a partir da qual um conjunto válido de solicitações JSON pode ser recuperado. Essas solicitações são incluídas em qualquer conjunto de solicitações especificado anteriormente. sequência
jws-jwk Não A variável de tempo de execução que contém o JWK usado para assinar o JWT. Um JWK e um objeto criptográfico são maneiras válidas de fornecer os dados criptográficos necessários para assinar o JWT. Entretanto, se ambos os tipos de dados forem especificados, somente o Objeto criptográfico será usado. sequência
jws-alg Não O algoritmo criptográfico a ser usado. Os valores válidos são:
  • HS256
  • HS384
  • HS512
  • RS256
  • RS384
  • RS512
  • ES256
  • ES384
  • ES512
  • PS256
  • PS384
  • PS512
sequência
jws-crypto Não O objeto criptográfico a ser usado para assinar o JWT. Um JWK e um objeto criptográfico são maneiras válidas de fornecer os dados criptográficos necessários para assinar o JWT. Entretanto, se ambos os tipos de dados forem especificados, somente o Objeto criptográfico será usado. sequência
custom-kid-value-jws Não O valor kid customizado para assinatura JWT. sequência
jwe-enc Não O algoritmo de criptografia a ser usado. Os valores válidos são:
  • A128CBC-HS256
  • A192CBC-HS384
  • A256CBC-HS512
sequência
jwe-jwk Não A variável de tempo de execução que contém o JWK a ser usado para criptografar o JWT. sequência
jwe-alg Não O algoritmo de criptografia de chave a ser usado. Os valores válidos são:
  • RSA1_5
  • RSA-OAEP
  • RSA-OAEP-256
  • dir
  • A128KW
  • A192KW
  • A256KW
sequência
jwe-crypto Não O objeto criptográfico a ser usado para criptografar a solicitação. sequência
custom-kid-value-jwe Não O valor kid customizado para a criptografia JWT. sequência

Exemplo

A seguir há um exemplo de uma política jwt-generate :
      - jwt-generate:
          version: 2.1.0
          title: jwt-generate
          description: New jwt-generate v2.1.0 policy.
          jwt: generated.jwt
          jti-claim: true
          iss-claim: iss.claim
          sub-claim: sub.claim
          aud-claim: aud.claim
          exp-claim: 3600
          private-claims: private.claims
          jws-jwk: jws.jwk
          jws-alg: HS256
          jws-crypto: jwsCryptoObjectName
          custom-kid-value-jws: jws.kid
          jwe-enc: A128CBC-HS256
          jwe-jwk: jwe.jwk
          jwe-alg: RSA1_5
          jwe-crypto: jweCryptoObjectName
          custom-kid-value-jwe: jwe.kid

Para obter mais informações sobre como usar uma política de segurança do jwt-generate , consulte Gerar JWT na seção de políticas integradas