Support Kontaktieren Sie Support | Systemstatus Systemstatus
Inhalt der Seite

    Übersicht: OAuth-API

    Die Brightcove-Implementierung von OAuth2 ermöglicht es Ihnen, Zugriffstoken für verschiedene Brightcove-APIs zu erhalten.

    Übersicht

    Die Implementierung von Brightcove besteht aus zwei Teilen:

    • Die OAuth-API - bietet Zugriff auf alle verfügbaren OAuth-Funktionen

    • Die Benutzeroberfläche von OAuth Credentials - zugänglich über die Benutzeroberfläche für Kontoeinstellungen in Studio. Sie bietet eine einfache Möglichkeit, Apps zu registrieren, die Brightcove-APIs verwenden und eine Client-ID und ein Client-Geheimnis für sie generieren. Anweisungen zur Verwendung der OAuth-Benutzeroberfläche finden Sie unter Verwalten von API-Authentifizierungsanmeldeinformationen .

    Siehe auch die API-Referenz.

    Glossar der Begriffe

    OAuth

    Ein offener Standard für die Autorisierung. OAuth bietet Clientanwendungen den „sicheren delegierten Zugriff“ auf Serverressourcen im Auftrag eines Ressourceneigentümers. Mit OAuth können Zugriffstoken im Wesentlichen von einem Autorisierungsserver mit Genehmigung des Ressourcenbesitzers an Clients von Drittanbietern ausgegeben werden. Der Client verwendet dann das Zugriffstoken, um auf die geschützten Ressourcen zuzugreifen, die vom Ressourcenserver gehostet werden

    Umfang

    Ein Datenobjekt, das eine Reihe von Ressourcen beschreibt (auf die über eine API zugegriffen werden kann) und einige Vorgänge für diese Ressourcen (z. B. "Lesen" und "Schreiben"). Der Umfang eines Zugriffstokens schränkt ein, was Sie tun können, indem Sie dieses Token präsentieren.

    Klient

    Eine App, mit der ein Endbenutzer über eine Brightcove-API auf eine Ressource zugreift.

    Kunden ID

    Eine eindeutige Kennung für einen vom OAuth-Dienst generierten Client.

    Kundengeheimnis

    Eine Bitfolge, die zusammen mit einer Client-ID als Kennwort zur Authentifizierung eines Clients dient.

    Zugangstoken

    Eine Bitfolge, die temporären Zugriff auf eine API bietet. Zugriffstoken werden vom OAuth-Dienst auf Anfrage für einen Client zurückgegeben.

    fließen

    Abfolge von Vorgängen, die zum erfolgreichen Zugriff auf eine OAuth-geschützte Ressource führen.

    Basis-URL

    Die Basis-URL für die OAuth-API lautet:

        https://oauth.brightcove.com/v4
        
        

    Client-Anmeldeinformationsfluss

    Im Client-Anmeldeinformationsfluss fordert Ihre App ein Zugriffstoken an und übergibt Ihre Client-ID und Ihr Client-Geheimnis mit der Anforderung an den OAuth-Dienst. Derzeit ist dies der einzige Flow, der von Brightcove-Kunden unterstützt wird.

    Wie genau der Ablauf der Client-Anmeldeinformationen funktioniert, hängt vom Szenario ab.

    Organisatorische App

    In diesem Szenario verfügen Sie über eine App, die mit einer oder mehreren Brightcove-APIs interagieren muss, nur für das Konto oder die Konten, die zu Ihrer Organisation gehören. Die App ist nicht an einen bestimmten Benutzer gebunden. In diesem Fall sieht der Workflow folgendermaßen aus:

    Workflow für Client-Anmeldeinformationen für organisatorische
    Workflow für Client-Anmeldeinformationen für organisatorische

    Um dieses Szenario zu implementieren, gehen Sie wie folgt vor:

    1. Verwenden Sie die OAuth-Benutzeroberfläche oder den OAuth-Dienst, um eine Client-ID und ein Geheimnis für Ihre App abzurufen. Über die Benutzeroberfläche können Sie eine Client-ID und ein Geheimnis für ein einzelnes Konto oder mehrere Konten abrufen. Dies ist eine einmalige Operation.

    2. Fügen Sie Ihrer serverseitigen App Logik hinzu, um Anforderungen an die OAuth-API für Zugriffstoken zu stellen. Die Implementierung hängt von der Sprache Ihrer App ab (und Sie werden aufgefordert, eine vorhandene zu verwenden OAuth2-Bibliothek wenn möglich für Ihre Sprache), aber der Anruf, den Sie tätigen, ist eine POST-Anfrage an:

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

      Das client_id und client_secret werden als die übergeben username:password in einem grundlegenden Autorisierungsheader:

          Authorization: Basic {client_id}:{client_secret}
          
          

      Das ganze {client_id}:{client_secret} Die Zeichenfolge muss Base64-codiert sein (in Node.js können Sie beispielsweise die Zeichenfolge verwenden Buffer.toString("base64") Methode). CURL führt die BASE64-Codierung automatisch durch, sodass Sie die Anmeldeinformationen einfach als übergeben können user {client_id}:{client_secret}. Sie müssen auch ein Content-Type: application/x-www-form-urlencoded Header.

      Der Anforderungshauptteil enthält das Schlüssel / Wert-Paar grant_type=client_credentials. Beachten Sie, dass seit dem Content-type ist x-www-form-urlencoded Sie können dies auch einfach als Parameter an die Anforderungs-URL anhängen:

          https://oauth.brightcove.com/v4/access_token?grant_type=client_credentials

      Unten ist eine sehr einfache Node.js App, die eine bekommen wird access_token eine gültige gegeben client_id und client_secret.

          /*
          * Simple node app to get an access_token for a Brightcove API
          * You will need to substitute valid client_id and client_secret values
          * for {your_client_id} and {your_client_secret}
          */
          var request = require('request');
          var client_id = "{your_client_id}";
          var client_secret = "{your_client_secret}";
          var auth_string = new Buffer(client_id + ":" + client_secret).toString('base64');
          console.log(auth_string);
          request({
          method: 'POST',
          url: 'https://oauth.brightcove.com/v4/access_token',
          headers: {
          'Authorization': 'Basic ' + auth_string,
          'Content-Type': 'application/x-www-form-urlencoded'
          },
          body: 'grant_type=client_credentials'
          }, function (error, response, body) {
          console.log('Status: ', response.statusCode);
          console.log('Headers: ', JSON.stringify(response.headers));
          console.log('Response: ', body);
          console.log('Error: ', error);
          });
          
          
    3. Der Antworttext sieht folgendermaßen aus:

          {
          "access_token": "ACikM-7Mu04V5s7YBlKgTiPu4ZO3AsTBlWt-73l5kXRN4IeRuIVlJHZkq_lFQdZBYfzT9B_nHNgcmNFdalxSiNdqOBaaV7wQCCnRCua_efHNCg9d_yLbezcjxr3AGcBKy9a8_t-uTMTA46T24LKMOBGBNJFkyATSZI4JuxU71VIyGF9hDisbKHmKC5G5HdQ0nJgyCD1w1zkKrB1CpFb5iiBuA_XOzehF-Xf5DBYnSkDhzzByuFwTv9dU9d7W6V2OuiKiTzCzY3st01qJTk6-an6GcAOD4N5pdN8prvvMDQhz_HunJIamvVGqBz7o3Ltw8CFFJMXKQdeOF8LX31BDnOvMBEz-xvuWErurvrA0r6x5eZH8SuZqeri4ryZAsaitHiJjz9gp533o",
          "token_type": "Bearer",
          "expires_in": 300
          }
          
          

      Sie müssen die erfassen access_token. Sofern Ihre Anrufe nicht zeitweise erfolgen, fordern Sie in diesem Fall eine neue an access_token Für jeden API-Aufruf möchten Sie auch die erfassen expires_in Wert, damit Sie ihn für spätere Anforderungen verwenden können, um zu überprüfen, ob Ihr Token noch gültig ist. Andernfalls müssen Sie ein neues Token anfordern. Das expires_in Wert ist in Sekunden.

    4. Sobald Sie die haben access_token können Sie die Brightcove-API aufrufen, einschließlich des Tokens in der Authorization Header in der Form:

          Authorization: Bearer {access_token}
          
          

    Sehen Zugriffstoken erhalten Weitere Details und Codebeispiele.

    Allgemeine Genehmigung

    Dieses Szenario gilt hauptsächlich für Brightcove-Partner, die Apps erstellen, die von Brightcove-Benutzern in verschiedenen Organisationen verwendet werden können. Der Workflow für dieses Szenario sieht folgendermaßen aus:

    Workflow für Client-Anmeldeinformationen für die App für mehrere Organisationen
    Workflow für Clientanmeldeinformationen für Apps mit mehreren Organisationen

    Der einzige Unterschied bei der Implementierung dieses Szenarios und nicht des ersten besteht darin, dass der Benutzer eine Client-ID und ein Geheimnis für Ihre App von der OAuth-Benutzeroberfläche abrufen und diese über ein Formular bereitstellen muss. Sie werden diese dann an Ihre App weiterleiten, um sie mit der Anfrage für eine zu senden access_token. Abgesehen davon wird alles gleich sein.

    Client-Anmeldeinformationen abrufen

    Der einfachste Weg, um Client-Anmeldeinformationen zu erhalten (die client_id und client_secret ) ist die zu verwenden OAuth-Benutzeroberfläche. Wenn Sie sie jedoch lieber direkt vom OAuth-Service erhalten möchten, können Sie dies tun, indem Sie eine POST-Anfrage an senden https://oauth.brightcove.com/v4/client_credentials Übergeben der folgenden Überschriften:

    • Content-Type: application/json
    • Authorization: BC_TOKEN your BC_TOKEN

    Sie müssen auch ein JSON-Objekt als Nutzlast senden:

        {
          "type": "credential",
          "maximum_scope": [
            {
              "identity": {
                "type": "video-cloud-account",
                "type": "perform-account",
                "account-id": account_id1
              },
              "operations": [
                "video-cloud/player/all"
              ]
            },
            {
              "identity": {
              "type": "video-cloud-account",
              "type": "perform-account",
              "account-id": account_id2
            },
            "operations": [
              "video-cloud/player/all"
            ]
            }
          ],
          "name": "AnalyticsClient",
          "description": "My analytics app"
        }
        
        

    Betrieb

    Das einzige, was hier variieren wird, ist das operations Wert, der davon abhängt, auf welche API Sie zugreifen möchten und ob Sie auf Lese-, Schreib- oder beide Vorgänge zugreifen möchten. Eine Liste aller derzeit unterstützten Vorgänge finden Sie unter API-Vorgänge für Client-Anmeldeinformationen .

    Ausführliche Anleitungen zum Abrufen von Client-Anmeldeinformationen mit curl oder Postman finden Sie unter:

    Arbeiten mit OAuth

    Es gibt zwei allgemeine Möglichkeiten, um eine Logik zum Abrufen von Zugriffstoken für Ihre API-Anforderungen zu erstellen.

    Wenn Sie eine einzelne serverseitige App erstellen, ist es sinnvoll, die Logik in die App zu integrieren. Die Reihenfolge der Operationen sieht folgendermaßen aus:

    Eine App-Sequenz
    Eine App-Sequenz

    Wenn Sie stattdessen mehrere Apps erstellen, für die Brightcove-APIs aufgerufen werden müssen, oder wenn Sie eine clientseitige Webanwendung erstellen, ist es sinnvoller, den Code für das Abrufen von Zugriffstoken in einem einzigen Proxy zu konsolidieren. In diesem Fall sieht die Reihenfolge der Operationen folgendermaßen aus:

    Proxy-Sequenz
    Proxy-Sequenz

    Siehe die Schnellstart Ausführliche Anweisungen zum Erstellen eines einfachen Proxys.

    Client-Beispiele und Bibliotheken

    Wir haben erschaffen Beispiel für Client-Implementierungen in mehreren Sprachen, um Ihnen Modelle für Implementierungen zu geben.

    Es gibt auch OAuth2-Bibliotheken für eine Reihe von Sprachen. Wir empfehlen Ihnen generell, diese Bibliotheken nach Möglichkeit zu verwenden, anstatt eine Interaktion mit der OAuth-API aufzubauen. Unten finden Sie eine unvollständige Liste der verfügbaren Bibliotheken. Eine ausführlichere Liste finden Sie unter http://oauth.net/2/

    Python
    PHP
    Kakao
    Kakao
    iOS
    iPhone und iPad
    iOS und Mac MacOS
    iOS und Mac MacOS
    Java
    Ruby
    .NET
    Qt / C ++
    O2

    Seite zuletzt aktualisiert am 28 Sep 2020