Tutorial: Generar un token web JSON (JWT)

Este tutorial muestra cómo definir e implementar una definición de API REST que genere un token web JSON (JWT).

Acerca de esta guía de aprendizaje

En este tutorial, completarás las siguientes lecciones:
  1. Generar una JWT
  2. Prueba de la API REST
Nota: El catálogo Sandbox debe configurarse para utilizar DataPower® Gateway (v5 compatible), DataPower API Gateway o ambos. Véase Creación y configuración de catálogos.

Generar una JWT

Crear una API REST para generar y devolver un token web JSON (JWT).

Para añadir y definir esta API REST, siga estos pasos:
  1. Inicie sesión en API Manager.
  2. En la página de bienvenida, haga clic en el mosaico Desarrollar API y productos.

    Pantalla API Manager

  3. Haga clic en Añadir > API.

    Pantalla Añadir API

  4. Asegúrese de que OpenAPI 3.0 está seleccionado.
  5. Seleccione Nuevo OpenAPI y haga clic en Siguiente.

    Seleccione OpenAPI

  6. Especifique la información adecuada para crear una definición de API REST.
    1. En el campo Título, introduzca JWT.
    2. Los campos Nombre y Ruta base se rellenan automáticamente con los términos jwt y /jwt respectivamente.
    3. El campo Versión se rellena automáticamente con 1.0.0.

    Pantalla de información básica

  7. Pulse Siguiente.
  8. En la sección Seguridad, haga clic en Siguiente.

    API segura

  9. Verás el progreso a medida que se crea la nueva API. Cuando termine, verá un Resumen. Haga clic en Editar API.

    Nuevo resumen de la API

  10. En la barra lateral de la página Diseño, seleccione Trayectorias para mostrar el panel Trayectorias.
  11. Pulse Añadir +.

    Página Vías de acceso

  12. En el campo Ruta, introduzca /gen.
  13. Pulse Añadir.

    Añadir info de ruta

  14. Desplácese hacia abajo. En la sección Parámetros, haga clic en Añadir +.

    Añadir parámetros

    1. Introduzca iss-claim en el campo Nombre del parámetro.
    2. Seleccione la dirección header en la lista Localizado en.
    3. Introduzca https://myidp.ibm.com para que coincida en el campo Descripción.
    4. Seleccione la casilla Obligatorio.
    5. Pulse Añadir.

      Ruta Configuración de parámetros

    6. Desplácese hacia abajo. En la sección Esquema, haga clic en Crear

      Añadir esquema

    7. Seleccione cadena en la lista Tipo.
    8. Pulse Añadir.

      Añadir serie

  15. Después de crear el parámetro, haga clic en Guardar.
  16. Para añadir un segundo parámetro. Complete los pasossiguientes:
    1. En la barra lateral de la página Diseño, seleccione Parámetros en la ruta /gen recién creada.

      Barra lateral de parámetros

    2. Pulse Añadir +.

      Página de parámetros

    3. Introduzca aud-claim en el campo Nombre del parámetro.
    4. Seleccione header en la lista Ubicado en.
    5. Introduzca Enter ClientID1 para que coincida en el campo Descripción.
    6. Seleccione la casilla Obligatorio.
    7. Pulse Añadir.

      Ruta Configuración de parámetros

    8. Desplácese hacia abajo. En la sección Esquema, haga clic en Crear.

      Añadir esquema

    9. Seleccione string en la lista Tipo.
    10. Pulse Añadir.

      Añadir serie

  17. Después de crear el segundo parámetro, haga clic en Guardar.
  18. Haga clic en Componentes > Respuestas.
  19. Pulse Añadir.

    Página de respuestas

  20. El campo Nombre de la respuesta se rellena automáticamente con 200.
  21. Introduzca 200 OK en el campo Descripción.

    Añadir esquema

  22. Pulse Añadir.
  23. Después de crear la respuesta, haga clic en Guardar.
  24. Seleccione la pestaña Pasarela.
  25. Sitúe el ratón sobre el nodo de política existente y haga clic en el icono de la papelera para eliminarlo.

    Página de pasarela

  26. En Acciones, haga clic en Establecer variable para añadir la acción a la línea de flujo de procesamiento. Se abre automáticamente un panel de configuración.
  27. Pulse Añadir acción.

    Se ha añadido la acción Establecer variable

  28. Introduzca hs256-key en el campo Set.
  29. Seleccione string en la lista Tipo.
  30. Introduzca un JWK en el campo Valor. A continuación, se muestra un ejemplo. { "alg": "HS256", "kty": "oct", "use": "sig", "k": "o5yErLaE-dbgVpSw65Rq57OA9dHyaF66Q_Et5azPa-XUjbyP0w9iRWhR4kru09aFfQLXeIODIN4uhjElYKXt8n76jt0Pjkd2pqk4t9abRF6tnL19GV4pflfL6uvVKkP4weOh39tqHt4TmkBgF2P-gFhgssZpjwq6l82fz3dUhQ2nkzoLA_CnyDGLZLd7SZ1yv73uzfE2Ot813zmig8KTMEMWVcWSDvy61F06vs_6LURcq_IEEevUiubBxG5S2akNnWigfpbhWYjMI5M22FOCpdcDBt4L7K1-yHt95Siz0QUb0MNlT_X8F76wH7_A37GpKKJGqeaiNWmHkgWdE8QWDQ", "kid": "hs256-key" }

    Propiedades Setvar

  31. Cierre el panel de propiedades. Pulse Guardar.
  32. En Acciones, haga clic en Generar JWT para añadir la acción a la línea de flujo de procesamiento después del icono de establecer variable. Se abre automáticamente un panel de configuración.
    Nota: Si el panel Construir flujo de montaje no está visible, haga clic en + cerca de la variable de ajuste para mostrar el panel.

    Se ha añadido la acción Generar JWT

  33. Introduzca request.headers.iss-claim en el campo "Issuer Claim ".
  34. Introduzca request.headers.aud-claim en el campo Reclamación de audiencia.
  35. Introduzca hs256-key en el campo Nombre de la variable Sign JWK.
  36. Seleccione HS256 en la lista Algoritmo criptográfico.

    Propiedades de JWT Generate

  37. Cierre el panel de propiedades. Pulse Guardar.
  38. En Acciones, haga clic en GatewayScript para añadir la acción a la línea de flujo de procesamiento después del icono Generar JWT. Se abre automáticamente un panel de configuración.
  39. Especifique el código siguiente:
    var apim = require('apim');
    apim.setvariable('message.body',apim.getvariable('generated.jwt'));

    GatewayScript acción añadida

    Nota: Es posible que aparezca la siguiente advertencia cuando añada la acción GatewayScript acción: This gatewayscript policy should not use the apim module which is only for migrating old APIs. Puede ignorar esta advertencia y continuar.
  40. Cierre el panel de propiedades. Pulse Guardar.

Prueba de la API REST

Nota: Debido a las restricciones de uso compartido de recursos entre orígenes (CORS), la herramienta de prueba de ensamblaje no puede utilizarse con los navegadores Chrome o Safari en la plataforma macOS Catalina.
Para probar la API REST, siga estos pasos:
  1. Pulse Probar.
    Nota: No puede probar la API REST si no ha configurado ninguna puerta de enlace para el catálogo y aparece un mensaje de error en la pestaña Prueba.Prueba
  2. Haga clic en Configuración de destino y establezca Publicación automática en Activado.
  3. Haz clic en Guardar preferencias. El estado de la API se muestra como Online en la pestaña Test.
  4. Introduzca https://myidp.ibm.com en el campo Valor correspondiente al parámetro iss-claim.
  5. Introduzca ClientID1 en el campo Valor correspondiente al parámetro aud-claim.
  6. Pulse Enviar.

    Página de prueba y botón de envío

  7. La respuesta contiene el JWT generado.

    Resultado de la prueba

Gestione la definición de su API

Ahora que su nueva API funciona correctamente, puede gestionarla. Para ver tus opciones inmediatas, sigue estos pasos.

  1. Haga clic en el icono Revelar Desarrollar icono de la barra de navegación.

    Barra de navegación

  2. Haga clic en el icono Opciones El icono de gestión junto a la API JWT.

    Gestionar API

  3. Seleccione Descargar.

Qué ha hecho en esta guía de aprendizaje

En esta guía de aprendizaje, ha completado las actividades siguientes:
  • Se ha creado una nueva definición de API que genera un token web JSON (JWT).
  • Probada la nueva API.