Creazione di token di autenticazione

Le API del servizio dati e metadati utilizzano un JWT (JSON Web Token) per autenticazione e autorizzazione. Quando richiedi un'API utilizzando l'intestazione della richiesta di autorizzazione HTTP , devi fornire un token non scaduto che abbia l'ambito corretto e che sia firmato da una JWK (JSON Web Key) approvata.

Prima di iniziare

  1. Trova l'account, l'organizzazione e gli ID cliente.
    1. Accedere a Intelligence suite.

    2. Seleziona l'organizzazione e l'account che stai utilizzando.

    3. Aprire la pagina Informazioni.

      Viene visualizzato un elenco di ID account, organizzazione e client di cui hai bisogno per accedere ai servizi API.

      Nota: l'ID client ha come prefisso il nome servizio.

      Nel seguente esempio di ID client, saascore è un servizio, quindi l'ID ha come prefisso saascore.

      saascore-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    4. Prendere nota di tutti gli ID.
  2. Ottieni una chiave API.
    Nota: puoi ottenere una chiave API con o senza un account IBM Cloud® , ma utilizzare un account IBM Cloud è il metodo preferito.
    Opzione Descrizione
    Se hai un account IBM Cloud Devi generare la chiave dell'API solo una volta per generare il token IAM (identity and access management) e questa chiave non scade dopo essere stata creata.
    1. Accedi a IBM Cloud.
    2. Dalla barra dei menu, seleziona Manage > Access (IAM).
    3. Dal menu di navigazione laterale, nella sezione Gestisci identità , fai clic su Chiavi API.
    4. Per creare la chiave API IBM Cloud , fare clic su Crea e aggiungere un nome e una descrizione.
    5. Fare clic su Crea.
    6. Copiare la chiave API o fare clic su Scarica per salvarla.
    Se non hai un account IBM Cloud Contatta IBM® per ottenere una chiave API nonIBM Cloud , quindi passa alla procedura.

Procedura

  1. Genera un token:
    Opzione Descrizione
    Se hai un account IBM Cloud
    1. Per creare un token IAM, invia la richiesta API POST come mostrato nel seguente esempio cURL :
      Assicurati di sostituire <<YOUR_IAM_APIKEY>> con la tua chiave nella richiesta.
      curl --location --request POST 'https://iam.cloud.ibm.com/identity/token' \
      --data-urlencode 'grant_type=urn:ibm:params:oauth:grant-type:apikey' \
      --data-urlencode 'apikey=<<YOUR_IAM_APIKEY>>'
      

      Questa richiesta restituisce un token IAM. Prendi nota del token IAM.

    2. Generare un token JWT.

      Nel seguente esempio cURL , il token IAM è utilizzato per generare un token JWT per accedere al servizio saascore .

      Assicurati di sostituire <<YOUR_ORGID>>,<<CLIENT_ID>>, e <<YOUR_IAM_TOKEN>> con il tuo ID organizzazione, ID client e token IAM nella richiesta.
      curl --location --request GET 'https://api.ibm.com/saascore/run/authentication-retrieve?orgId=<<YOUR_ORGID>>\
      --header 'X-IBM-Client-Id: saascore-<<CLIENT_ID>>' \
      --header 'Authorization: Bearer <<YOUR_IAM_TOKEN>>'
      

      Il risultato di questa chiamata è un token JWT. Salvare il token JWT per le chiamate API successive. I token JWT generalmente scadono dopo circa 60 minuti dopo i quali è necessario recuperare un nuovo token.

    Se non hai un account IBM Cloud

    Invia una richiesta GET come mostrato nel seguente esempio cURL .

    Assicurati di sostituire <tenantId>>,<<apiKey>>, e <<orgId>> con il tuo ID tenant, la chiave API nonIBM Cloud e l'ID organizzazione nella richiesta.
    curl --location --request GET \
    --header 'X-IBM-Client-Id: saascore-${tenantId}' \
    --header 'X-API-Key: ${apiKey}' \
    "https://api.ibm.com/saascore/run/authentication-retrieve/api-key?orgId=${orgId}"
  2. Autentica il tuo account.

    Nel seguente esempio cURL , il token JWT viene utilizzato per autenticare il tuo account.

    curl --location --request <GET/POST> '<INSERT_API_ENDPOINT_HERE>' \
     --header 'x-ibm-client-Id: <service-prefix>-<INSERT_YOUR_CLIENT_ID_HERE>' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <INSERT_YOUR_JWT_HERE> \