Ü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:

Um dieses Szenario zu implementieren, gehen Sie wie folgt vor:
-
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.
-
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
undclient_secret
werden als die übergebenusername: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 verwendenBuffer.toString("base64")
Methode). CURL führt die BASE64-Codierung automatisch durch, sodass Sie die Anmeldeinformationen einfach als übergeben könnenuser {client_id}:{client_secret}
. Sie müssen auch einContent-Type: application/x-www-form-urlencoded
Header.Der Anforderungshauptteil enthält das Schlüssel / Wert-Paar
grant_type=client_credentials
. Beachten Sie, dass seit demContent-type
istx-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 gegebenclient_id
undclient_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); });
-
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 anaccess_token
Für jeden API-Aufruf möchten Sie auch die erfassenexpires_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. Dasexpires_in
Wert ist in Sekunden. -
Sobald Sie die haben
access_token
können Sie die Brightcove-API aufrufen, einschließlich des Tokens in derAuthorization
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:

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:
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:
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
-
- Sanktion
- rauth
- python-oauth2
- PHP
- Kakao
- Kakao
- iOS
- iPhone und iPad
- iOS und Mac MacOS
- iOS und Mac MacOS
- Java
- Ruby
-
- Ruby Gem
- Rubin
- .NET
-
- OWIN Middleware
- DotNetOpenAuth
- Spring Social für .NET
- Qt / C ++
- O2