Questa esercitazione mostra come definire e implementare una definizione di API REST che genera un JSON Web Token (JWT).
Informazioni su questo tutorial
Genera un JWT
Creare un'API REST per generare e restituire un token web JSON (JWT).
Per aggiungere e definire questa API REST, completare i seguenti passaggi:
- Accedere a API Manager.
- Nella pagina di benvenuto, fare clic sul riquadro Develop APIs and Products.

- Fai clic su .

- Assicurarsi che OpenAPI 3.0 sia selezionato.
- Selezionare Nuovo OpenAPI e fare clic su Avanti.

- Immettere le informazioni appropriate per creare una definizione di API REST.
- Nel campo Titolo, inserire JWT.
- I campi Nome e Percorso base si popolano automaticamente con i termini jwt e /jwt rispettivamente.
- Il campo Versione si autocompila con 1.0.0.

- Fare clic sul pulsante Avanti.
- Nella sezione Protezione, fare clic su Avanti.

- Si vede l'avanzamento della creazione della nuova API. Al termine, viene visualizzato un riepilogo. Fare clic su Modifica API.

- Nella barra laterale della pagina di progettazione, selezionare Percorsi per visualizzare il pannello Percorsi.
- Fare clic su Aggiungi +.

- Nel campo Percorso, inserire /gen.
- Fare clic su Aggiungi.

- Scorrere verso il basso. Nella sezione Parametri, fare clic su Aggiungi +.

- Inserire iss-claim nel campo Nome parametro.
- Selezionare il sito header dall'elenco Situato in.
- Immettere https://myidp.ibm.com da abbinare nel campo Descrizione.
- Selezionare la casella di controllo Richiesto.
- Fare clic su Aggiungi.

- Scorrere verso il basso. Nella sezione Schema, fare clic su Crea

- Selezionare stringa nell'elenco Tipo.
- Fare clic su Aggiungi.

- Dopo aver creato il parametro, fare clic su Salva.
- Per aggiungere un secondo parametro. Completa i seguenti passi:
- Nella barra laterale della pagina di progettazione, selezionare Parametri sotto il percorso /gen appena creato.
- Fare clic su Aggiungi +.

- Inserire aud-claim nel campo Nome parametro.
- Selezionare header dall'elenco Situato in.
- Immettere Enter ClientID1 da abbinare nel campo Descrizione.
- Selezionare la casella di controllo Richiesto.
- Fare clic su Aggiungi.

- Scorrere verso il basso. Nella sezione Schema, fare clic su Crea.

- Selezionare string dall'elenco Tipo.
- Fare clic su Aggiungi.

- Dopo aver creato il secondo parametro, fare clic su Salva.
- Fare clic su Componenti > Risposte.
- Fare clic su Aggiungi.

- Il campo Nome risposta si autocompila con 200.
- Inserire 200 OK nel campo Descrizione.

- Fare clic su Aggiungi.
- Dopo aver creato la risposta, fare clic su Salva.
- Selezionare la scheda Gateway.
- Passare il mouse sul nodo di criterio esistente e fare clic sull'icona del cestino per eliminarlo.

- Da Azioni, fare clic su Imposta variabile per aggiungere l'azione alla linea del flusso di elaborazione. Si apre automaticamente un pannello di configurazione.
- Fare clic su Aggiungi azione.

- Immettere hs256-key nel campo Set.
- Selezionare string dall'elenco Tipo.
- Inserire un JWK nel campo Valore. Di seguito viene riportato un esempio. {
"alg": "HS256", "kty": "oct", "use": "sig", "k":
"o5yErLaE-dbgVpSw65Rq57OA9dHyaF66Q_Et5azPa-XUjbyP0w9iRWhR4kru09aFfQLXeIODIN4uhjElYKXt8n76jt0Pjkd2pqk4t9abRF6tnL19GV4pflfL6uvVKkP4weOh39tqHt4TmkBgF2P-gFhgssZpjwq6l82fz3dUhQ2nkzoLA_CnyDGLZLd7SZ1yv73uzfE2Ot813zmig8KTMEMWVcWSDvy61F06vs_6LURcq_IEEevUiubBxG5S2akNnWigfpbhWYjMI5M22FOCpdcDBt4L7K1-yHt95Siz0QUb0MNlT_X8F76wH7_A37GpKKJGqeaiNWmHkgWdE8QWDQ",
"kid": "hs256-key" }

- Chiudere il pannello delle proprietà. Fare clic su Salva.
- Da Azioni, fare clic su Genera JWT per aggiungere l'azione alla riga del flusso di elaborazione dopo l'icona della variabile impostata. Si apre automaticamente un pannello di configurazione.
Nota: se il pannello Build assembly flow non è visibile, fare clic su + vicino alla variabile impostata per visualizzare il pannello.

- Inserire request.headers.iss-claim nel campo Issuer Claim.
- Immettere request.headers.aud-claim nel campo Audience Claim.
- Inserire hs256-key nel campo Sign JWK variable name.
- Selezionare HS256 dall'elenco Algoritmo crittografico.

- Chiudere il pannello delle proprietà. Fare clic su Salva.
- Da Azioni, fare clic su GatewayScript per aggiungere l'azione alla riga del flusso di elaborazione dopo l'icona Genera JWT. Si apre automaticamente un pannello di configurazione.
- Immettere il seguente codice:
var apim = require('apim');
apim.setvariable('message.body',apim.getvariable('generated.jwt'));

Nota: potrebbe essere visualizzato il seguente avviso quando si aggiunge l'azione GatewayScript azione: This gatewayscript policy should not use the
apim module which is only for migrating old APIs. È possibile ignorare questo avviso e procedere.
- Chiudere il pannello delle proprietà. Fare clic su Salva.
Test dell'API REST
Nota: a causa delle restrizioni relative alla condivisione delle risorse tra domini ( CORS ), lo strumento di test dell'assembly non può essere utilizzato con i browser Chrome o Safari sulla piattaforma macOS Catalina.
Per testare l'API REST, completare i seguenti passaggi:
- Fare clic su Test.
Nota: non è possibile testare l'API REST se non sono stati configurati gateway per il catalogo; in tal caso, nella scheda
"Test" verrà visualizzato un messaggio di errore.

- Fare clic su Configurazione destinazione e impostare la pubblicazione automatica su On.
- Fare clic su Salva preferenze. Lo stato dell'API è indicato come Online nella scheda Test.
- Inserire https://myidp.ibm.com nel campo Valore corrispondente al parametro iss-claim.
- Inserire ClientID1 nel campo Valore corrispondente al parametro aud-claim.
- Fare clic su Invia.

- La risposta contiene il JWT generato.

Gestire la definizione delle API
Ora che la nuova API funziona correttamente, è possibile gestirla. Per visualizzare le opzioni immediate, procedere come segue.
- Fai clic sull'icona "Sviluppo
" nella barra di navigazione.
- Fai clic sull'icona Opzioni
accanto all'API JWT.
- Selezionare Download.
Cosa hai imparato in questa esercitazione
In questa esercitazione, hai completato le seguenti attività:
- Creata una nuova definizione di API che genera un JSON Web Token (JWT).
- Testato il nuovo API.