Support Kontaktieren Sie Support | Systemstatus Systemstatus
Inhalt der Seite

    Authentifizierung für API-Anfragen

    In diesem Thema wird die Authentifizierung für die Anfrage an die Brightcove REST APIs behandelt.

    Einführung

    Die meisten Brightcove REST-APIs verwenden OAuth2 als Grundlage für die Authentifizierung, und wir werden die OAuth-Implementierung in den folgenden Abschnitten genauer betrachten.

    Beachten Sie jedoch zunächst, dass zwei APIs unterschiedliche Authentifizierungsansätze verwenden:

    Richtlinienschlüssel-Authentifizierung: Wiedergabe-API

    Das Wiedergabe-API Wird hauptsächlich zum Abrufen von Video- und Wiedergabelistendaten von Playern oder Webportalen verwendet policy_key , zur Authentifizierung, normalerweise als Argument in einem übergeben Accept Header:

            Accept: application/json;pk={policy_key}

    Richtlinienschlüssel werden automatisch für Brightcove-Spieler generiert und können von a übernommen werden Spielerkonfiguration oder mit dem generiert Richtlinien-API

    API-Schlüssel-Authentifizierung: Live-AP

    Das Live API Verwendet einen API-Schlüssel, der angegeben wird, wenn Ihr Konto zur Authentifizierung von Anforderungen eingerichtet ist. Der API-Schlüssel wird in einem X-API-KEY Header übergeben:

            X-API-KEY : {YOUR_APIKey}

    OAuth2-Authentifizierung

    Die anderen REST-APIs für Video Cloud verwenden OAuth2 zur Authentifizierung. Für diejenigen, die mit OAuth2 vertraut sind, verwenden wir einen Ablauf für Client-Anmeldeinformationen. Es gibt zwei Operationen:

    1. Client-Anmeldeinformationen abrufen: Dies ist ein einmaliger Vorgang, der am einfachsten über die API-Authentifizierungsseite der Admin-Tools in Studio durchgeführt wird. Sehen Verwalten von API-Authentifizierungsanmeldeinformationen Einzelheiten und schrittweise Anleitungen.
    2. Holen Sie sich ein Zugriffstoken: Jede API-Anfrage muss ein Zugriffstoken enthalten, das in einem Authorization Header gesendet wird:
              Authorization: Bearer {access_token}

      Greifen Sie fünf Minuten lang live zu. Wenn Sie also keinen Prozess ausführen, der wiederholte API-Anfragen generiert, möchten Sie wahrscheinlich nur für jede Anfrage einen neuen erhalten.

      Zugriffstoken werden durch Senden der Client-Anmeldeinformationen in einer Anfrage an die OAuth-API von Brightcove erhalten. Sehen Zugriffstoken erhalten für alle Details. Da ist auch ein Beispiel App Sie können ein einmaliges Token zum Testen von API-Aufrufen abrufen. Es gibt auch Anweisungen zum Konfigurieren der beliebten REST-Clients Postbote und Schlaflosigkeit.

    Client-Anmeldeinformationen über die OAuth-API

    Wenn Sie Client-Anmeldeinformationen mithilfe der OAuth-API erstellen möchten oder müssen, finden Sie im Folgenden Schritte, die Sie durch das Abrufen Ihrer Client-Anmeldeinformationen führen. Sie müssen zuerst Ihr BC_TOKEN abrufen, mit dem Sie sich für die Anforderung der Clientanmeldeinformationen authentifizieren.

    Holen Sie sich Ihre BC_TOKEN Kontonummer

    Sie müssen sich bei Studio anmelden, um Ihre zu erhalten BC_TOKEN.

    1. Melden Sie sich wie gewohnt bei Studio an.
    2. Sie benötigen Ihre Kontonummer (in Studio als Publisher-ID bezeichnet), die Sie erhalten, indem Sie Ihre Kontoinformationen in Studio aufrufen:
      Konto-ID
      Konto-ID
    3. Wenn eine beliebige Seite in Studio geöffnet ist, öffnen Sie die Entwicklertools für den Browser, rufen Sie die Konsole auf und fügen Sie den folgenden Code ein:
            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);

      ... und drücken Sie die Eingabetaste.

    4. Sie sollten eine Eingabeaufforderung sehen, die Folgendes enthält BC_TOKEN:
      BC_TOKEN
      BC_TOKEN
    5. Wenn Sie Ihr BC_TOKEN haben, fahren Sie mit dem Abschnitt Client-Anmeldeinformationen abrufen fort. Wenn Sie Ihr BC_TOKEN aus irgendeinem Grund nicht mit den vorherigen Schritten erhalten haben, gehen Sie einfach zur Konsole document.cookies , geben Sie ein und drücken Sie die Eingabetaste.
    6. Alle Cookies für die Seite werden in einer durch Semikolons getrennten Liste zurückgegeben. Suchen Sie das BC_TOKEN-Cookie in der Liste und kopieren Sie den Wert:
      Holen Sie sich BC_TOKEN von Console
      Holen Sie sich BC_TOKEN von Console

    abrufen client_credentials

    Jetzt sind wir bereit, den OAuth-Dienst aufzurufen, um Client-Anmeldeinformationen abzurufen. Wir müssen einen Clientanwendungsnamen angeben, für den wir Anmeldeinformationen anfordern - der Name ist willkürlich, damit Sie den Überblick über die Anmeldeinformationen behalten können - und hier verwenden wir einfach "ingest-profile-api-client". Wir müssen auch den Umfang der Operationen angeben, auf die wir in einem Array zugreifen möchten, und hier werden wir verwenden. Die verfügbaren Operationen werden in angezeigt API-Vorgänge für Clientanmeldeinformationen. In den folgenden Schritten geben Sie die für die Ingest Profiles-API erforderlichen Vorgänge an.

    1. Bearbeiten Sie den folgenden curl-Befehl, fügen Sie ihn dann in die Befehlszeile ein und drücken Sie die Eingabetaste. Sie müssen Ihre spezifischen Werte für die folgenden drei Werte angeben:
      • dein BC_TOKEN
      • Ihr Anmeldeinformationsn
      • Ihre Konto-ID
            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. Die Antwort sollte so aussehen (Formatierung hinzugefügt):
            {
              "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. Kopieren und speichern Sie das client_id und client_secret , da Sie diese jederzeit benötigen, um eine zu erhalten access_token.

    Zugriffstoken über die OAuth-API

    Zugriffstoken sind im Gegensatz zu Client-Anmeldeinformationen nur von kurzer Dauer - derzeit verfallen sie in 5 Minuten. Sie müssen für jede API-Anfrage eine neue erhalten. Sie können natürlich eine Logik in eine App einbauen, um das letzte Zugriffstoken zu überprüfen, um festzustellen, ob das Zeitlimit abgelaufen ist. Die Anforderungen an die Ingest Profiles-API sind jedoch wahrscheinlich gering, sodass es keinen guten Grund dafür gibt .

    Tatsächlich ist die API möglicherweise eine, die Sie selten genug verwenden, sodass es sich möglicherweise überhaupt nicht lohnt, eine App darum herum zu erstellen. Eine Alternative wäre zu verwenden dieses Shell-Skript dass Brightcove Learning Services gebaut. Hier können Sie Ihre Client-ID und Ihr Geheimnis, die API-Anforderung und -Methode sowie alle Anforderungsdaten eingeben. Es wird dann ein access_token , stellt die API-Anforderung und gibt die Antwort aus. (Beachten Sie, dass das Shell-Skript cURL verwendet, das nativ unter Mac MacOS und anderen Unix / Linux-Systemen installiert ist, oder kann unter Windows installiert werden.

    Um Zugriffstoken abzurufen, senden Sie eine POST-Anfrage an:

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

    Sie müssen die folgenden Header mit diesem Aufruf übergeben:

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

    Das ganze {client_id}:{client_secret} Die Zeichenfolge muss Base64-codiert sein (Curl codiert die Zeichenfolge automatisch Base64-codiert, wenn Sie sie als übergeben --user Referenzen; In anderen Sprachen müssen Sie die Base64-Codierung selbst durchführen.

    Sie müssen auch das folgende Schlüssel/Wert-Paar als Anfragetext oder als URL-Parameter senden:

          grant_type=client_credentials

    Die Antwort wird so aussehen (hier aus Grund zur besseren Lesbarkeit gedruckt):

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

    Der access_token Wert ist, was Sie bei Ihrem API-Aufruf in dieser Form in einem Authorization Header übergeben müssen:

          Authorization: Bearer {access_token}

    Das expired_in value ist die Anzahl der Sekunden, für die das Zugriffstoken gültig ist.

    Weitere Informationen und Beispielcode finden Sie unter Zugriffstoken erhalten


    Seite zuletzt aktualisiert am 28 Sep 2020