Extraction d'un jeton d'accès

Commencez à utiliser les API IBM® Key Protect en authentifiant vos demandes auprès du service avec un jeton d'accès IBM Cloud® Identity and Access Management (IAM).

Extraction d'un jeton d'accès à l'aide de l'interface de ligne de commande

Vous pouvez utiliser le IBM Cloud CLI pour générer rapidement votre jeton d'accèsValeur utilisée par le consommateur pour accéder aux ressources protégées au nom de l'utilisateur, au lieu d'utiliser les données d'identification du fournisseur de services de l'utilisateur. Cloud IAM personnel.

  1. Connectez-vous à IBM Cloud avec IBM Cloud CLI.

    ibmcloud login
    

    Si la connexion échoue, exécutez la commande ibmcloud login --sso pour réessayer. :NONE. --sso est requis lorsque vous vous connectez avec un identifiant fédéré. Si cette option est utilisée, accédez au lien figurant dans la sortie de l'interface de ligne de commande pour générer un code d'accès à usage unique.

  2. Sélectionnez le compte, la région et le groupe de ressources contenant votre instance Key Protect mise à disposition.

  3. Exécutez la commande suivante pour extraire votre jeton d'accès Cloud IAM.

    ibmcloud iam oauth-tokens
    

    L'exemple partiel suivant montre un jeton IAM extrait.

    IAM token: Bearer eyJraWQiOiIyM...
    

Extraction d'un jeton d'accès à l'aide de l'API

Vous pouvez également récupérer votre jeton d'accès de manière programmatique en créant d'abord une clé API d'ID de servicepour votre application, puis en échangeant votre clé API contre une clé jeton IAM IBM Cloud.

  1. Connectez-vous à IBM Cloud avec IBM Cloud CLI.

    ibmcloud login
    

    Si la connexion échoue, exécutez la commande ibmcloud login --sso pour réessayer. :NONE. --sso est requis lorsque vous vous connectez avec un identifiant fédéré. Si cette option est utilisée, allez sur le lien répertorié dans la sortie d'interface de ligne de commande pour générer un code d'accès unique.

  2. Sélectionnez le compte, la région et le groupe de ressources contenant votre instance Key Protect mise à disposition.

  3. Créez un service ID pour votre application.

    ibmcloud iam service-id-create SERVICE_ID_NAME
                [-d, --description DESCRIPTION]
    
  4. Gestion de l'accès aux ressources pour l'identifiant du service.

    Vous pouvez attribuer des autorisations d'accès à votre identifiant de service en utilisant la console IBM Cloud Pour savoir comment les rôles d'accès Manager, Writer et Reader correspondent à des actions spécifiques du service Key Protect, voir Rôles et autorisations.

  5. Créer une clé API clé API d'identification du service.

    ibmcloud iam service-api-key-create API_KEY_NAME SERVICE_ID_NAME
                [-d, --description DESCRIPTION]
                [--file FILE_NAME]
    

    Remplacez <service_ID_name> par l'alias unique que vous avez affecté à votre ID de service à l'étape précédente. Sauvegardez la clé d'API en la téléchargeant dans un emplacement sécurisé.

  6. Appelez l'API des services d'identité IAMpour récupérer votre jeton d'accès

    $ curl -X POST \
        "https://iam.cloud.ibm.com/identity/token" \
        -H "content-type: application/x-www-form-urlencoded" \
        -H "accept: application/json" \
        -d 'grant_type=urn%3Aibm%3Aparams%3Aoauth%3Agrant-type%3Aapikey&apikey=<API_KEY>' > token.json
    

    Dans la demande, remplacez <API_KEY> par la clé d'API que vous avez créée à l'étape précédente. L'exemple tronqué suivant montre le contenu du fichier token.json fichier :

    {
        "access_token": "b3VyIGZhdGhlc...",
        "expiration": 1512161390,
        "expires_in": 3600,
        "refresh_token": "dGhpcyBjb250a...",
        "token_type": "Bearer"
    }
    

    Utilisez la valeur access_token complète, préfixée par le type de jeton Bearer, pour gérer par programme les clés de votre service à l'aide de l'API Key Protect. Pour afficher un exemple de demande d'API Key Protect, voir Formuler votre demande d'API.

    Les jetons d'accès sont valides pendant 1 heure, mais vous pouvez les régénérer si besoin. Pour conserver l'accès au service, régénérez régulièrement le jeton d'accès à votre clé API en appelant l'API IAM Identity Services.

    • Utilisez des jetons IBM Cloud Identity and Access Management (IAM) pour envoyer des demandes authentifiées aux services IBM Watson sans intégrer les données d'identification de service dans chaque appel.

    • L'authentification IAM utilise des jetons d'accès pour l'authentification, que vous achetez en envoyant une demande avec une clé d'API.

Exemple - Définition du jeton d'accès à l'aide de l'interface de ligne de commande

Cet exemple montre comment extraire un jeton d'accès et définir une variable d'environnement à l'aide de l'interface de ligne de commande.

# login and select account, region, and resource group
$ ibmcloud login --sso

# optionally set the region (-r) and resource group (-g) that
# contains your provisioned Key Protect instance
$ ibmcloud target -r us-south -g Default

# set the ACCESS_TOKEN environment variable (with Bearer)
$ export ACCESS_TOKEN=`ibmcloud iam oauth-tokens | grep IAM | cut -d \: -f 2 | sed 's/^ *//'`

# show the access token
$ echo $ACCESS_TOKEN

Bearer eyJraWQiOiIyMDIwMDcyNDE4MzEiLCJh ...<redacted>... o4qlcKjl9sVqLa8Q

# set the ACCESS_TOKEN environment variable (without Bearer)
$ export ACCESS_TOKEN=`ibmcloud iam oauth-tokens | grep IAM | cut -d ' ' -f 5 | sed 's/^ *//'`

$ echo $ACCESS_TOKEN

eyJraWQiOiIyMDIwMDcyNDE4MzEiLCJh ...<redacted>... o4qlcKjl9sVqLa8Q