サポート サポート問い合わせ先 | システムステータス システムステータス

概要: OAuth API

BrightcoveのOAuth2を利用して、さまざまなBrightcove APIのアクセストークンを取得できます。

概要

Brightcoveの実装は、次のXNUMXつの部分で構成されています。

  • 挽き目 OAuth API - 利用可能なすべてのOAuth機能へのアクセスを提供する

  • OAuth Credentials UI - StudioのAccount Settingsインターフェイスからアクセスアクセスできます。このUIは、Brightcove APIを使用するアプリケーションを登録し、クライアントIDとクライアント秘密を生成する為の、簡単な方法を提供します。 API認証資格情報の管理 OAuth UIの使用方法については、こちらをご覧ください。

また、 APIリファレンス.

用語集

OAuth

認証技術のオープンスタンダードです。OAuthは、クライアントアプリケーションに、リソース所有者に代わってサーバーリソースに「安全な委任アクセス権限」を提供します。 OAuthはリソース所有者の承認の元、認可サーバーからのサードパーティークライアントへのアクセストークンの発行を許可します。 クライアントはアクセストークンを使用する事により、リソースサーバーに保管されている保護されたリソースにアクセスする事ができます。

スコープ

(APIを介してアクセス可能な)リソースのセットと、それらのリソースに関するいくつかの操作(「read」や「write」など)を記述するデータオブジェクト。 アクセストークンのスコープは、そのトークンを提示する事によって何ができるかを制限します。

クライアント

Brightcove API経由でリソースにアクセスする、エンドユーザーが使用するアプリケーション。

クライアントID

OAuthサービスによって生成されたクライアントの一意の識別子。

クライアントシークレット

クライアントIDと共に用いられ、クライアントを認証するためのパスワードとして機能する文字列。

アクセストークン

APIへの一時的なアクセスを提供する文字列。 アクセストークンは、クライアントからのリクエストに対してOAuthサービスから返却されます。

フロー

OAuthで保護されたリソースへ正しくアクセスするための、一連の操作。

ベースURL

そのベースURL OAuth API 次のとおりです。

    https://oauth.brightcove.com/v4
    
    

クライアント資格フロー

クライアント認証フローでは、アプリはアクセストークンのリクエストを作成し、リクエストとともにクライアントIDとクライアントシークレットをOAuthサービスに渡します。 現在、これはブライトコーブのお客様に対してサポートされている唯一のフローです。

クライアント資格フローがどのように機能するかは、シナリオによって異なります。

組織アプリ

このシナリオでは、組織に属するXNUMXつまたは複数のアカウントに対してのみ、XNUMXつ以上のBrightcove APIと対話する必要があるアプリがあります。 アプリは特定のユーザーに関連付けられていません。 この場合、ワークフローは次のようになります。

組織アプリのクライアント資格情報ワークフロー
組織アプリのクライアント資格情報ワークフロー

このシナリオを実装するには、次のようにします。

  1. OAuth UIまたはOAuthサービスを使用して、アプリのクライアントIDとシークレットを取得します.UIでは、単一のアカウントまたは複数のアカウントのクライアントIDとシークレットを取得できます。 これは1回限りの操作です。

  2. サーバー側のアプリケーションにロジックを追加して、 OAuth API トークンにアクセスする 実装はアプリケーションの言語に依存します(既存のアプリケーションを使用することをお勧めします) OAuth2ライブラリ 可能であればあなたの言語のために)、あなたがする呼び出しはPOST要求である:

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

    挽き目 client_idclient_secret は、 username:password 基本的な承認ヘッダーで:

        Authorization: Basic {client_id}:{client_secret}
        
        

    {client_id}:{client_secret} stringはBase64エンコードでなければなりません(例えば、Node.jsでは、 Buffer.toString("base64") 方法)。 CURLは自動的にBASE64エンコーディングを行います。 user {client_id}:{client_secret}。 また、 Content-Type: application/x-www-form-urlencoded ヘッダ。

    リクエスト本文にはキーと値のペアが含まれます grant_type=client_credentials。 それ以来、 Content-type is x-www-form-urlencodedパラメータとしてリクエストURLに追加することもできます。

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

    以下は非常に基本的なNode.jsアプリケーションです。 access_token 与えられた有効な client_idclient_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. 応答本文は次のようになります。

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

    キャプチャする必要があります access_token。 あなたの通話が断続的でない限り、あなたは新しい access_token すべてのAPI呼び出しで、 expires_in あなたのトークンが有効かどうかを後で確認するために使用することができます。そうでない場合は、新しいトークンを要求する必要があります。 ザ expires_in 値は秒です。

  4. いったん access_token、Brightcove APIを呼び出すことができます。 Authorization ヘッダーを次の形式で入力します。

        Authorization: Bearer {access_token}
        
        

見る アクセストークンの取得 詳細とコードサンプルについては、

一般許可

このシナリオは主に、さまざまな組織のブライトコーブユーザーが使用できるアプリを作成するブライトコーブパートナーに適用されます。 このシナリオのワークフローは次のようになります。

マルチオーガニゼーションアプリケーションのクライアント資格情報ワークフロー
マルチ組織アプリのクライアント資格情報ワークフロー

最初のシナリオではなく、このシナリオを実装する唯一の違いは、ユーザーがOAuth UIからアプリのクライアントIDとシークレットを取得し、フォーム経由で提供する必要があることです。 その後、これらをアプリに渡して、 access_token。 それ以外は、すべて同じです。

クライアント資格情報を取得する

クライアントの資格情報を取得する最も簡単な方法( client_idclient_secret)は、 OAuth UI。 ただし、OAuthサービスから直接取得したい場合は、 https://oauth.brightcove.com/v4/client_credentials、次のヘッダーを渡します。

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

また、ペイロードとしてJSONオブジェクトを送信する必要があります。

    {
      "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"
    }
    
    

使用方式

ここで変わるのは、 operations どのAPIにアクセスしたいか、また、読み取り、書き込み、または両方の操作にアクセスするかどうかによって異なります。 見る クライアント資格情報要求のAPI操作 現在サポートされているすべての操作のリストについては、

curlまたはPostmanを使用してクライアントの資格情報を取得する方法の詳細は、次を参照してください。

OAuthの使用

APIリクエストのアクセストークンを取得するロジックを構築するには、一般的な2つの方法があります。

単一のサーバーサイドアプリケーションを構築する場合は、ロジックをアプリケーションに組み込むことが理にかなっています。 操作のシーケンスは次のようになります。

単一のApp Sequence
単一のApp Sequence

代わりに、Brightcove APIを呼び出す必要がある複数のアプリを構築する場合、またはクライアント側のWebアプリを作成する場合は、アクセストークンを取得するためのコードを単一のプロキシに統合する方が理にかなっています。 この場合、操作のシーケンスは次のようになります。

プロキシシーケンス
プロキシシーケンス

見ます クイックスタート シンプルなプロキシの作成方法の詳細については、

クライアントのサンプルとライブラリ

私たちは サンプルのクライアント実装 いくつかの言語で実装するためのモデルを提供しています。

また、多くの言語で利用できるOAuth2ライブラリもあります。可能であれば、これらのライブラリを使用することをお勧めします。 OAuth API。 以下は利用可能なライブラリの一部です。 より詳細なリストについては、 http://oauth.net/2/

Python
PHP
ココア
ココア
iOS
iPhoneとiPad
iOSとMac MacOS
iOSとMac MacOS
Java
ルビー
。NET
Qt / C ++
O2

ページの最終更新日:12年2020月XNUMX日