Accès et authentification des API

Sterling Intelligent Promising prend en charge la méthode d'authentification OAuth2 . Pour accéder aux API, vous devez générer un jeton d'accès qui sera utilisé pour appeler des API.

A propos de cette tâche

Pour accéder aux API offertes dans Sterling Intelligent Promising, les utilisateurs doivent obtenir un jeton d'accès et l'utiliser pour effectuer une demande d'API. Chaque locataire est associé à un environnement si son kit d'outils de développement, sa préproduction ou sa non-production requièrent son propre jeton d'accès. Pour plus d'informations sur la génération d'un jeton d'API, voir Initiation aux API.

Chaque jeton d'accès fourni est valide pour les 12 prochaines heures. Après ce délai, vous devez générer un nouveau jeton d'accès. Pour encourager l'utilisation efficace d'un jeton d'accès, le système autorise jusqu'à 1000 jetons d'accès générés par heure. Au-delà de cette limite, un utilisateur est censé recevoir une erreur de limite de débit atteinte.

Il est recommandé d'encourager l'application de connexion à stocker le jeton d'accès dans un cache local afin qu'il puisse être réutilisé jusqu'à son expiration. A l'expiration du jeton, le client d'application peut demander un nouveau jeton et suivre la même procédure de mise en cache.

Un système de jetons bien géré est essentiel pour garantir une interruption nulle de votre service. Il est recommandé de disposer d'un service de gestion des jetons centralisé, qui effectue un renouvellement de jeton de routine afin que l'application consommatrice puisse partager les informations de jeton pour accéder aux API. Avant l'expiration du jeton, le système doit effectuer une demande de jeton dans les 30 minutes suivant l'expiration afin de s'assurer que les clients en aval disposent de suffisamment de temps pour basculer vers le nouveau jeton.

Pour plus d'informations sur les meilleures pratiques, voir Pratiques recommandées pour les API.

Procédure

La procédure suivante fournit un exemple d'obtention d'un jeton d'authentification à l'aide d'un client API.

  1. Effectuez une demande OAuth HTTP POST pour obtenir un jeton d'accès.
    1. Ouvrez un client API tel que POSTMAN.
    2. Définissez le type de demande sur POST.
    3. Définissez l' URL sur https://api.watsoncommerce.ibm.com/inventory/{tenantid}/v1/oauth2/token et remplacez tenantid par votre identifiant de locataire.
    4. Ajoutez les paramètres suivants.
      • En-tête HTTP :
        "Content-Type" : "application/x-www-form-urlencoded"
        "Authorization" : "Basic <base64_encoded_clientID:clientSecret>"
        Note : Le mode standard de transfert des données d'en-tête HTTP est le codage base64. Pour récupérer la valeur encodée en base64, suivez les étapes suivantes :
        1. Concaténez clientId, par exemple ABC et clientSecret, par exemple 123 avec un signe deux-points (:).
          ABC:123
        2. Utilisez l'utilitaire de codage base64 de votre choix pour coder la chaîne ABC:123.
      • Corps de texte :
        grant_type=client_credentials
      La réponse POST génère un jeton d'accès comme illustré dans l'exemple suivant:
      {
      "token_type": "bearer",
      "access_token": "trYl8rEz0A11E32kVdWemRD9ilYQbOLP",
      "expires_in": 43200
      }

      Utilisez la valeur de l'attribut access_token lors d'une demande d'API. L'attribut expires_in définit le délai d'expiration en secondes pendant lequel le jeton est valide.

      Remarque: tous les jetons fournis par IBM® Sterling Intelligent Promising sont valides pendant 12 heures.
  2. En utilisant le jeton d'accès, vous pouvez effectuer un appel d'API avec l'en-tête et le corps d'entrée.
    Par exemple, pour l'API de disponibilité Inventory Visibility :
    https://api.watsoncommerce.ibm.com/inventory/<tenantid>/v1/availability/node
    En-tête :
    "Content-Type" : "application/json"
    "Authorization" : "Bearer [access_token]"
    Corps de texte :
    {
      "demandType": "OPEN_ORDER",
      "lines": [
        {
          "deliveryMethod": "SHP",
          "itemId": "sample0123",
          "lineId": "line_sample01234",
          "productClass": "NEW",
          "shipNodes": "["eastnode01"]",
          "unitOfMeasure": "EACH"
        }
      ],
      "segment": "ONLINE",
      "segmentType": "Channel"
    }

Etape suivante

Pour plus d'informations sur l'authentification des API, voir la documentation Authentification OAuth .