IBM Cloud IAM-Token mithilfe eines API-Schlüssels generieren

Generieren Sie ein IBM Cloud® Identity and Access Management (IAM) Token, indem Sie entweder Ihren IAM-API-Schlüssel oder den API-Schlüssel einer Service-ID verwenden. IBM Cloud Auf APIs können nur Benutzer zugreifen, die durch eine zugewiesene IAM-Rolle autorisiert sind. Jeder Benutzer, der die API aufruft, muss zur Authentifizierung Berechtigungsnachweise für die API übergeben.

IAM-Token generieren

Sie können ein IAM-Token generieren, indem Sie entweder Ihren IBM Cloud-API-Schlüssel oder den API-Schlüssel einer Service-ID verwenden. Bei einem API-Schlüssel handelt es sich um einen permanenten Berechtigungsnachweis, der wiederholt verwendet werden kann, vorausgesetzt, der Wert des API-Schlüssels geht nicht verloren und der API-Schlüssel wird im Konto nicht gelöscht. Dieser Prozess wird auch verwendet, wenn Sie eine Anwendung entwickeln, die mit anderen IBM Cloud-Services zusammenarbeiten muss. Sie müssen den API-Schlüssel einer Service-ID verwenden, um ein Zugriffstoken abzurufen, das an die einzelnen IBM Cloud-Services übergeben werden soll.

Bei einem Zugriffstoken handelt es sich um einen temporären Berechtigungsnachweis, der nach spätestens einer Stunde abläuft. Nach dem Ablaufen des Tokens müssen Sie ein neues Token generieren, damit Sie IBM Cloud- oder Service-APIs weiterhin aufrufen können. Sie können nur die Aktionen ausführen, die der Stufe Ihrer zugewiesenen Zugriffsberechtigungen in allen Konten entsprechen. Verwenden Sie die Antworteigenschaft expires_in in der API-Antwort, um die Gültigkeitsdauer des spezifischen Zugriffstokens zu identifizieren.

IAM-Token mithilfe eines API-Schlüssels generieren

Um ein IAM-Token mithilfe eines API-Schlüssels programmatisch zu generieren, rufen Sie die IAM Identity Services API oder SDKs wie in der folgenden Beispielanforderung gezeigt auf.

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.

Erwartete Antwort

{
  "access_token": "eyJhbGciOiJIUz......sgrKIi8hdFs",
  "refresh_token": "not_supported",
  "ims_user_id": 118...90,
  "token_type": "Bearer",
  "expires_in": 3600,
  "expiration": 1473188353,
  "scope": "ibm openid"
}

Weitere Informationen finden Sie in der Dokumentation zur IAM Identity Services-API.

Weitere Informationen finden Sie im Java SDK.

Weitere Informationen finden Sie im SDK.

Weitere Informationen finden Sie im Python SDK.

Weitere Informationen finden Sie im Go SDK.

Ein IAM-Token ist bis zu 60 Minuten gültig und kann geändert werden. Nach Ablauf eines Tokens muss ein neues generiert werden. Verwenden Sie die Eigenschaft expires_in für den Ablauf des gerade erstellten IAM-Tokens.