Génération d'un jeton IAM IBM Cloud à l'aide d'une clé d'API
Générez un jeton IBM Cloud® Identity and Access Management (IAM) en utilisant votre clé API IAM ou la clé API d'un identifiant de service. IBM Cloud Seuls les utilisateurs autorisés par un rôle IAM assigné peuvent accéder aux API. Chaque utilisateur qui appelle l'API doit transmettre des données d'identification pour l'API afin de s'authentifier.
Génération d'un jeton IAM
Vous pouvez générer un jeton IAM en utilisant votre clé d'API IBM Cloud ou la clé d'API d'un ID de service. La clé d'API est une donnée d'identification permanente qui peut être réutilisée si vous ne perdez pas sa valeur ou ne la supprimez pas dans le compte. Ce processus est également utilisé si vous développez une application qui doit fonctionner avec d'autres services IBM Cloud. Vous devez utiliser la clé d'API d'un ID de service pour obtenir un jeton d'accès à transmettre à chacun des services IBM Cloud.
Un jeton d'accès est une donnée d'identification temporaire qui expire au bout d'une heure maximum. Une fois que le jeton acquis est arrivé à expiration, vous devez en générer un nouveau pour continuer à appeler des API IBM Cloud ou de service
et vous ne pouvez exécuter que des actions autorisées par le niveau d'accès qui vous est affecté dans tous les comptes. Utilisez la propriété de réponse expires_in dans la réponse d'API pour identifier la durée de validité de
votre jeton d'accès spécifique.
Génération d'un jeton IAM à l'aide d'une clé d'API
Pour générer par programme un jeton IAM à l'aide d'une clé API, appelez API des services d'identité IAM ou SDK comme indiqué dans l'exemple de demande suivant.
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.
Réponse prévue
{
"access_token": "eyJhbGciOiJIUz......sgrKIi8hdFs",
"refresh_token": "not_supported",
"ims_user_id": 118...90,
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1473188353,
"scope": "ibm openid"
}
Pour plus d'informations, voir API IAM Identity Services.
Pour plus d'informations, voir le SDK Java.
Pour plus d'informations, voir le SDK.
Pour plus d'informations, voir le SDK Python.
Pour plus d'informations, voir le SDK Go.
Un jeton IAM est valide jusqu'à 60 minutes et peut être modifié. Lorsqu'un jeton expire, vous devez en générer un nouveau. Utilisez la propriété expires_in pour l'expiration du jeton IAM que vous venez de créer.