Paper Contacter le support | état du système L'état du système

Authentification pour les demandes d'API

Cette rubrique couvre l'authentification pour la demande aux API REST Brightcove.

Introduction

La plupart des API Brightcove REST utilisent OAuth2 comme base pour l'authentification, et nous examinerons plus en détail l'implémentation OAuth dans les sections qui suivent.

Tout d'abord, cependant, notez que deux API utilisent des approches différentes pour l'authentification:

Authentification par clé de stratégie: Playback API

Le système d'implants dentaires Playback API utilisé principalement pour récupérer des données de vidéos et de listes de lecture players ou portails Web, utilise un policy_key, pour l'authentification, généralement passé comme argument dans un Accept en-tête:

        Accept: application/json;pk={policy_key}

Les clés de stratégie sont générées automatiquement pour Brightcove players, et peuvent provenir d’une player paramétrageou générés à l'aide du Policy API

Authentification par clé API: Live API

Le système d'implants dentaires Live API utilise une clé API fournie lorsque votre compte est configuré pour authentifier les demandes. La clé API est transmise dans un X-API-KEY en-tête:

        X-API-KEY : {YOUR_APIKey}

Authentification OAuth2

Les autres API REST pour Video Cloud utiliser OAuth2 pour l'authentification. Pour ceux qui connaissent OAuth2, nous utilisons un flux d'informations d'identification client. Il y a deux opérations impliquées:

  1. Obtenir les informations d'identification du client: il s’agit d’une opération ponctuelle qui s’effectue le plus facilement à l’aide du Authentification API page des outils d’administration dans Studio. Voir Gestion des informations d'identification de l'API pour plus de détails et des instructions pas à pas.
  2. Obtenir un jeton d'accès: chaque demande d'API doit contenir un jeton d'accès envoyé dans une Authorization en-tête:
            Authorization: Bearer {access_token}

    Les jetons d'accès sont activés pendant cinq minutes. Ainsi, sauf si vous exécutez un processus qui générera des requêtes d'API répétées, vous souhaiterez probablement en obtenir un nouveau pour chaque requête.

    Les jetons d'accès sont obtenus en envoyant les informations d'identification du client dans une demande à Brightcove. OAuth API. Voir Obtenir des jetons d'accès pour plus de détails. Il y a aussi exemple d'application vous pouvez utiliser pour obtenir un jeton unique pour tester les appels d'API. Il existe également des instructions pour configurer les clients REST les plus populaires. Facteur et Insomnie.

Informations d'identification du client via le OAuth API

Si vous souhaitez ou devez créer des informations d'identification client à l'aide du OAuth API, voici les étapes qui vous guideront dans l'obtention des informations d'identification de votre client. Vous devrez d'abord obtenir votre BC_TOKEN, qui est utilisé pour vous authentifier pour la demande d'informations d'identification du client.

Obtenez votre BC_TOKEN et numéro de compte

Vous devrez vous connecter à Studio pour obtenir votre BC_TOKEN.

  1. Connectez-vous à Studio comme vous le faites normalement.
  2. Vous avez besoin de votre numéro de compte (appelé ID éditeur dans Studio), que vous pouvez obtenir en accédant aux informations de votre compte dans Studio:
    identifiant de compte
    identifiant de compte
  3. Avec n'importe quelle page dans Studio ouverte, ouvrez les outils de développement pour le navigateur, accédez à la console et collez le code suivant:
          var cookiesArray = document.cookie.split(";"), cookiesObj = {}, i, tmpArray = [];
          for (i = 0; i < cookiesArray.length; i++) {
              tmpArray = cookiesArray[i].split("=");
              if (tmpArray[0].indexOf('BC_TOKEN') > -1) {
                  cookiesObj.BC_TOKEN = tmpArray[1];
              }
          }
          window.prompt("BC_TOKEN:", cookiesObj.BC_TOKEN);

    ... et appuyez sur retour.

  4. Vous devriez voir apparaître une invite contenant votre BC_TOKEN:
    BC_TOKEN
    BC_TOKEN
  5. Si vous avez votre BC_TOKEN, allez au Obtenir les informations d'identification du client section; Si pour une raison quelconque vous n'avez pas obtenu votre BC_TOKEN en utilisant les étapes précédentes, allez dans la console, tapez document.cookieset appuyez sur retour.
  6. Tous les cookies de la page seront renvoyés dans une liste séparée par des points-virgules. Recherchez le cookie BC_TOKEN dans la liste et copiez la valeur:
    Obtenez BC_TOKEN depuis la console
    Obtenez BC_TOKEN depuis la console

Obtenez un client_credentials

Nous sommes maintenant prêts à appeler le service OAuth pour récupérer les informations d'identification du client. Nous devons spécifier un nom d'application client pour lequel nous demandons des informations d'identification - le nom est arbitraire, destiné à vous aider à garder une trace de la raison d'être des informations d'identification - et ici, nous allons simplement utiliser "ingest-profiles-api-client". Nous devons également spécifier la portée des opérations auxquelles nous voulons accéder dans un tableau, et ici nous allons utiliser. Les opérations disponibles sont présentées dans Opérations d'API pour les demandes d'informations d'identification du client. Dans les étapes ci-dessous, vous spécifierez les opérations requises pour la Ingest Profiles API.

  1. Modifiez la commande curl suivante, puis collez-la dans la ligne de commande et appuyez sur Retour. Vous devez fournir vos valeurs spécifiques pour les trois valeurs suivantes:
    • votre BC_TOKEN
    • votre nom d'identification
    • l'identifiant de votre compte
          curl \
            --include \
            --header "Authorization: BC_TOKEN your_BC_TOKEN" \
            --data 'name=ingest-profiles-api-client&maximum_scope=[{
                "identity": {
                  "type": "video-cloud-account",
                  "account-id": your_account_id
                },
                "operations": [
                      "video-cloud/ingest-profiles/profile/read",
                      "video-cloud/ingest-profiles/profile/write",
                      "video-cloud/ingest-profiles/account/read",
                      "video-cloud/ingest-profiles/account/write"
                  ]
              }]' \
          https://oauth.brightcove.com/v4/client_credentials
  2. La réponse devrait ressembler à ceci (formatage ajouté):
          {
            "redirect_url": null,
            "maximum_scope": [
              {
                "identity": {
                  "type": "video-cloud-account",
                  "account-id": your_video_cloud_account_id
                },
                "operations": [
                  "video-cloud/ingest-profiles/profile/write",
                  "video-cloud/ingest-profiles/account/write",
                  "video-cloud/ingest-profiles/profile/read",
                  "video-cloud/ingest-profiles/account/read"
                ]
              }
            ],
            "name_html": "ingest-profiles-api-client",
            "issued_to": "your_email@host.com",
            "trusted": null,
            "expires_at": null,
            "issued_at": "2015-06-01T15:09:00Z",
            "name": "ingest-profiles-api-client",
            "description_html": null,
            "revoked": null,
            "type": "credential",
            "client_secret": "Ifckr6cWtxOh_NZnEVhKCgcqZaqoMcPuoJ-VGuivIE_psPoPUt2hGqUK15uPON3x3m748ElazZoOKPxbI3-4nQ",
            "description": null,
            "client_id": "da270d86-f3cd-4ee6-85b0-047df97a0db2",
            "issued_user": your_video_cloud_account_id
          }
  3. Copiez et enregistrez le client_id et client_secret, car vous en aurez besoin chaque fois que vous en aurez besoin access_token.

Jetons d'accès via le OAuth API

Les jetons d'accès, à la différence des informations d'identification du client, ont une durée de vie limitée. Ils expirent actuellement en minutes 5. Vous devrez en obtenir un nouveau pour chaque demande d'API. Vous pouvez bien sûr créer une logique dans une application pour vérifier le jeton d'accès le plus récent pour voir si elle a expiré, mais les requêtes à l'adresse Ingest Profiles API sont susceptibles d'être peu nombreux, il n'y a donc aucune bonne raison de le faire.

En fait, l'API peut être une API que vous utiliserez assez rarement pour que cela ne vaille pas la peine de construire une application autour d'elle. Une alternative serait d’utiliser ce script shell que Brightcove Learning Services a construit. Il vous permet de saisir votre identifiant et votre secret client, la demande et la méthode API et toutes les données de demande. Il obtient alors un access_token, effectue la demande d'API et génère la réponse. (Notez que le script shell utilise cURL, qui est installé nativement sur Mac MacOS et d'autres systèmes Unix / Linux, ou peut être installé sur Windows.

Pour récupérer des jetons d'accès, vous devez envoyer une demande POST à:

      https://oauth.brightcove.com/v4/access_token

Vous devez transmettre les en-têtes suivants avec cet appel:

  • Content-Type: application/x-www-form-urlencoded
  • Authorization: Basic {client_id}:{client_secret}

L'ensemble {client_id}:{client_secret} string doit être encodé en Base64 (curl sera automatiquement Base64-encoder la chaîne si vous la passez comme --user lettres de créance; dans d'autres langues, vous devrez gérer vous-même l'encodage Base64).

Vous devez également envoyer la paire clé / valeur suivante en tant que corps de la requête ou en tant que paramètre d'URL:

      grant_type=client_credentials

La réponse ressemblera à ceci (joli imprimé ici pour la lisibilité):

      {
          "access_token": "ANB7xKhiUZmwltVd3f1odcHHM9VAwg02kwmLwtZwHv3SxGCOWLUf5W4G7X22PRjmR9StvFUqzpVZ1suOfyfOigdi-rnohxyEaSSuZceeLw_9OBW7fXldOG05HEgkeK3N-DBZZZyilodmjA1JWZHbgI3IU7Rmz5IPGyi-sDxHN3KlOr1BDZlLZpXPdFPwEyb6idq-z8AL-blKTSMtNI3_fz3oNBisfrHGUv5tXHoQT4B7FYcvdrap16gTOO7_wNt1zmgLJiUHvyxZgsgBchm_AhohVL-AYgcfCbCR0v7d2hgI4ag35pnZNeujDiBLfnCFcVMlqQGq8UEVZrmU9a8y4pVAGih_EImmghqmSrkxLPYZ800-vIWX-lw",
          "token_type": "Bearer",
          "expires_in": 300
      }

Le système d'implants dentaires access_token la valeur est ce que vous devez passer dans un Authorization en-tête avec votre appel API dans ce formulaire:

      Authorization: Bearer {access_token}

Le système d'implants dentaires expired_in value est le nombre de secondes pendant lesquelles le jeton d'accès est valide.

Pour plus d'informations et un exemple de code, voir Obtenir des jetons d'accès


Dernière mise à jour de la page le 12 juin 2020