Support Kontakt Support | Systemstatus Systemstatus
Seiteninhalt

    Authentifizierung für API-Anforderungen

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

    Einführung

    Die meisten Brightcove-REST-APIs verwenden OAuth2 als Grundlage für die Authentifizierung. In den folgenden Abschnitten wird die OAuth-Implementierung ausführlicher beschrieben.

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

    Richtlinienschlüsselauthentifizierung: Playback API

    Das Playback API Wird hauptsächlich zum Abrufen von Video- und Wiedergabelistendaten von verwendet players oder Webportale, verwendet a policy_key, zur Authentifizierung, normalerweise als Argument in einem Accept Header:

            Accept: application/json;pk={policy_key}

    Richtlinienschlüssel werden automatisch für Brightcove generiert players und kann von a genommen werden player Konfiguration, oder generiert mit dem Policy API

    API-Schlüsselauthentifizierung: Live API

    Das Live API Verwendet einen API-Schlüssel, der bei der Einrichtung Ihres Kontos zur Authentifizierung von Anforderungen bereitgestellt wird. Der API-Schlüssel wird in einem übergeben X-API-KEY Header:

            X-API-KEY : {YOUR_APIKey}

    OAuth2-Authentifizierung

    Die anderen REST-APIs für Video Cloud Verwenden Sie OAuth2 zur Authentifizierung. Für Benutzer, die mit OAuth2 vertraut sind, wird ein Client-Berechtigungsnachweis verwendet. Es sind zwei Operationen beteiligt:

    1. Client-Anmeldeinformationen abrufen: Dies ist eine einmalige Operation, die am einfachsten mit der ausgeführt werden kann API-Authentifizierung Seite der Admin-Tools in Studio. Sehen API-Authentifizierungsdaten verwalten Einzelheiten und schrittweise Anleitungen.
    2. Holen Sie sich ein Zugriffstoken: Jede API-Anforderung muss ein Zugriffstoken enthalten, das in einem gesendet wird Authorization Header:
              Authorization: Bearer {access_token}

      Access-Token sind fünf Minuten lang aktiv. Wenn Sie also keinen Prozess ausführen, der wiederholte API-Anforderungen generiert, möchten Sie wahrscheinlich nur für jede Anforderung eine neue anfordern.

      Zugriffstoken erhalten Sie, indem Sie die Client-Anmeldeinformationen in einer Anfrage an Brightcove's senden OAuth API. Sehen Zugriffstoken erhalten für alle Details. Da ist auch ein Beispiel-App Mit können Sie ein einmaliges Token zum Testen von API-Aufrufen abrufen. Es gibt auch Anweisungen zum Konfigurieren der gängigen REST-Clients Postman und Insomnia.

    Client-Anmeldeinformationen über die OAuth API

    Wenn Sie Client-Anmeldeinformationen mithilfe von erstellen möchten oder müssen OAuth APIIm Folgenden finden Sie 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.

    Ihre BC_TOKEN und Kontonummer

    Sie müssen sich in Studio anmelden, um Ihr Konto 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. Öffnen Sie bei jeder Seite in Studio die Entwicklerwerkzeuge für den Browser, gehen Sie zur Konsole 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 Ihre enthält BC_TOKEN:
      BC_TOKEN
      BC_TOKEN
    5. Wenn Sie Ihre BC_TOKEN haben, fahren Sie mit der Client-Anmeldeinformationen abrufen Sektion; Wenn Sie aus irgendeinem Grund Ihre BC_TOKEN nicht mit den vorherigen Schritten erhalten haben, geben Sie einfach die Konsole ein document.cookies, und drücken Sie die Eingabetaste.
    6. Alle Cookies für die Seite werden in einer Semikolon-getrennten Liste zurückgegeben. Suchen Sie das Cookie BC_TOKEN in der Liste und kopieren Sie den Wert:
      Holen Sie sich BC_TOKEN von der Konsole
      Holen Sie sich BC_TOKEN von der Konsole

    Bezahlung client_credentials

    Jetzt können wir den OAuth-Dienst anrufen, um Client-Anmeldeinformationen abzurufen. Wir müssen einen Clientanwendungsnamen angeben, für den wir Anmeldeinformationen anfordern - der Name ist willkürlich, damit Sie verfolgen können, wofür die Anmeldeinformationen bestimmt sind - 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-Operationen für Clientanmeldungsanfragen. In den folgenden Schritten legen Sie die erforderlichen Vorgänge fest Ingest Profiles API.

    1. Bearbeiten Sie den folgenden Curl-Befehl, fügen Sie ihn in die Befehlszeile ein und drücken Sie Rückflug. Sie müssen Ihre spezifischen Werte für die folgenden drei Werte angeben:
      • Ihr BC_TOKEN
      • Ihr Berechtigungsname
      • 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 die client_id und client_secret, da Sie diese jederzeit benötigen, müssen Sie ein access_token.

    Zugriffstoken über die OAuth API

    Access-Token sind im Gegensatz zu Client-Anmeldeinformationen von kurzer Dauer - derzeit laufen sie in 5-Minuten ab. Sie müssen für jede API-Anforderung eine neue anfordern. Sie können natürlich eine Logik in eine App einbauen, um das letzte Zugriffstoken zu überprüfen, um zu sehen, ob das Zeitlimit überschritten wurde, aber Anfragen an den Ingest Profiles API Es gibt wahrscheinlich nur sehr wenige, also gibt es keinen guten Grund, das zu tun.

    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, macht die API-Anfrage und gibt die Antwort aus. (Beachten Sie, dass das Shell-Skript cURL verwendet, das nativ auf Mac MacOS und anderen Unix / Linux-Systemen installiert ist, oder Kann unter Windows installiert werden.

    Um Zugriffstoken abzurufen, machen 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}

    Die gesamte {client_id}:{client_secret} Die Zeichenfolge muss Base64-codiert sein (curl wird Base64 automatisch codieren, wenn Sie die Zeichenfolge übergeben) --user Referenzen; in anderen Sprachen müssen Sie selbst mit der Base64-Codierung umgehen).

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

          grant_type=client_credentials

    Die Antwort wird so aussehen (hier zur besseren Lesbarkeit schön gedruckt):

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

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

          Authorization: Bearer {access_token}

    Das expired_in Wert 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 04. August 2020