Generazione di un token IAM IBM Cloud utilizzando una chiave API
Generare un token IBM Cloud® Identity and Access Management (IAM) utilizzando la propria chiave API IAM o la chiave API di un ID servizio. IBM Cloud Alle API possono accedere solo gli utenti autorizzati da un ruolo IAM assegnato. Ogni utente che richiama l'API deve passare le credenziali dell'API per l'autenticazione.
Generazione di un token IAM
Puoi generare un token IAM utilizzando la tua chiave API IBM Cloud oppure una chiave API dell'ID servizio. La chiave API è una credenziale permanente che può essere riutilizzata se non si perde il valore della chiave API o se non si cancella la chiave API nell'account. Questo processo è utilizzato anche se stai sviluppando un'applicazione che deve lavorare con altri servizi IBM Cloud. Devi utilizzare una chiave API dell'ID servizio per ottenere un token di accesso da passare a ciascuno dei servizi IBM Cloud.
Un token di accesso è una credenziale temporanea che scade al massimo dopo 1 ora. Dopo la scadenza del token acquisito, è necessario generare un nuovo token per continuare a chiamare le API di IBM Cloud o del servizio, e si possono eseguire
solo le azioni consentite dal livello di accesso assegnato all'interno di tutti gli account. Utilizzare la proprietà expires_in nella risposta dell'API per identificare la durata della validità del token di accesso specifico.
Generare un token IAM utilizzando una chiave API
Per generare programmaticamente un token IAM utilizzando una chiave API, chiamare l'API IAM Identity Services o gli SDK come mostrato nella seguente richiesta di esempio.
curl -X POST 'https://iam.cloud.ibm.com/identity/token' -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=MY_APIKEY'
import com.ibm.cloud.sdk.core.security.IamAuthenticator;
import <sdk_base_package>.ExampleService.v1.ExampleService;
...
// Create the authenticator.
IamAuthenticator authenticator = new IamAuthenticator.Builder()
.apikey("myapikey")
.build();
// Create the service instance.
ExampleService service = new ExampleService(authenticator);
// 'service' can now be used to invoke operations.
const ExampleServiceV1 = require('mysdk/example-service/v1');
const { IamAuthenticator } = require('mysdk/auth');
const authenticator = new IamAuthenticator({
apikey: '<iam-api-key>',
});
const myService = new ExampleServiceV1({
authenticator,
});
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from <sdk-package-name>.example_service_v1 import *
# Create the authenticator.
authenticator = IAMAuthenticator('myapikey')
# Construct the service instance.
service = ExampleServiceV1(authenticator=authenticator)
# Use 'service' to invoke operations.
import {
"github.com/IBM/go-sdk-core/v5/core"
"<appropriate-git-repo-url>/exampleservicev1"
}
...
// Create the authenticator.
authenticator := &core.IamAuthenticator{
ApiKey: "myapikey",
}
// Create the service options struct.
options := &exampleservicev1.ExampleServiceV1Options{
Authenticator: authenticator,
}
// Construct the service instance.
service := exampleservicev1.NewExampleServiceV1(options)
// 'service' can now be used to invoke operations.
Risposta prevista
{
"access_token": "eyJhbGciOiJIUz......sgrKIi8hdFs",
"refresh_token": "not_supported",
"ims_user_id": 118...90,
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1473188353,
"scope": "ibm openid"
}
Per ulteriori informazioni, consultare l'API IAM Identity Services.
Per ulteriori informazioni, consultare l'SDK Java.
Per ulteriori informazioni, consultare l'SDK.
Per ulteriori informazioni, consultare l'SDK Python.
Per ulteriori informazioni, consultare l'SDK di Go.
Un token IAM è valido per un massimo di 60 minuti ed è soggetto a modifiche. Quando un token scade, devi generarne un altro. Utilizzare la proprietà expires_in per la scadenza del token IAM appena creato.