支持 聯繫支持 | 系統狀況 系統狀態

API請求的身份驗證

本主題涵蓋對Brightcove REST API的請求的身份驗證。

簡介

大多數Brightcove REST API使用OAuth2作為身份驗證的基礎,我們將在以下各節中更詳細地介紹OAuth實現。

但是,首先請注意,兩個API使用不同的身份驗證方法:

策略密鑰認證: Playback API

Playback API 主要用於從中檢索視頻和播放列表數據 player或Web門戶,使用 policy_key,用於身份驗證,通常作為參數傳遞給 Accept 標頭:

        Accept: application/json;pk={policy_key}

策略密鑰是為Brightcove自動生成的 players,並且可以取自 player 組態,或使用 Policy API

API密鑰身份驗證: Live API

Live API 使用在設置帳戶以驗證請求時提供的API密鑰。 API密鑰在 X-API-KEY 標頭:

        X-API-KEY : {YOUR_APIKey}

OAuth2驗證

其他REST API Video Cloud 使用OAuth2進行身份驗證,對於熟悉OAuth2的用戶,我們使用客戶端憑據流。 涉及兩個操作:

  1. 獲取客戶憑證: 這是一次性操作,最容易使用 API認證 Studio中管理工具的頁面。 看到 管理API身份驗證憑據 有關詳細信息和分步說明。
  2. 獲取訪問令牌: 每個API請求必須包含以 Authorization 標頭:
            Authorization: Bearer {access_token}

    訪問令牌的有效期為XNUMX分鐘,因此,除非您運行一個將產生重複的API請求的進程,否則您可能只想為每個請求獲取一個新的令牌。

    通過向Brightcove的請求發送客戶端憑據來獲得訪問令牌 OAuth API。 看 獲取訪問令牌 有關詳細信息。 還有一個 示例應用 您可以使用一次性令牌來測試API調用。 還有有關配置流行的REST客戶端的說明 郵差失眠.

通過的客戶憑證 OAuth API

如果您想要或需要使用 OAuth API,以下是指導您獲取客戶憑據的步驟。 您首先需要獲取您的BC_TOKEN,該證書用於對您的客戶端憑據請求進行身份驗證。

讓您的 BC_TOKEN 和帳號

您需要登錄Studio才能獲取您的 BC_TOKEN.

  1. 照常登錄Studio。
  2. 您需要您的帳號(在Studio中稱為發布商ID),您可以通過在Studio中轉到您的帳戶信息來獲得:
    帳戶ID
    帳戶ID
  3. 在Studio中打開任何頁面的情況下,打開瀏覽器的開發人員工具,轉到控制台,然後粘貼以下代碼:
          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);

    ...然後按回車鍵。

  4. 您應該會看到一個提示,其中包含您的 BC_TOKEN:
    BC_TOKEN
    BC_TOKEN
  5. 如果您有BC_TOKEN,請繼續 獲取客戶憑證 部分; 如果由於某些原因您沒有使用前面的步驟獲取BC_TOKEN,只需轉到控制台,鍵入 document.cookies,然後按回車鍵。
  6. 該頁面的所有cookie將以分號分隔的列表形式返回。 在列表中找到BC_TOKEN cookie,然後復制值:
    從控制台獲取BC_TOKEN
    從控制台獲取BC_TOKEN

獲得 client_credentials

現在,我們準備調用OAuth服務以檢索客戶端憑據。 我們必須指定一個我們要為其請求憑據的客戶端應用程序名稱-該名稱是任意的,旨在幫助您跟踪憑據的用途-在這裡,我們將僅使用“ ingest-profiles-api-client”。 我們還必須在數組中指定要訪問的操作的範圍,在這裡我們將使用它。 可用的操作顯示在 客戶端憑據請求的API操作。 在以下步驟中,您將指定 Ingest Profiles API.

  1. 編輯以下curl命令,然後將其粘貼到命令行中並按 返回。 您必須為以下三個值提供特定的值:
    • 您的BC_TOKEN
    • 您的憑證名稱
    • 您的帳號
          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. 響應應如下所示(已添加格式):
          {
            "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. 複製並保存 client_idclient_secret,因為您隨時都需要這些, access_token.

通過訪問令牌 OAuth API

訪問令牌與客戶端憑據不同,它是短暫的-當前它們在5分鐘內過期。 您需要為每個API請求獲取一個新的API。 您當然可以在應用程序中構建邏輯,以檢查最新的訪問令牌以查看其是否已超時,但需要向 Ingest Profiles API 可能很少且相差甚遠,因此沒有充分的理由這樣做。

實際上,該API可能是您不常使用的API,因此根本不值得圍繞它構建應用程序。 替代方法是使用 這個shell腳本 Brightcove學習服務所建立的。 它允許您輸入客戶端ID和密碼,API請求和方法以及任何請求數據。 然後得到一個 access_token,發出API請求,然後輸出響應。 (請注意,shell腳本使用的是cURL,它是本地安裝在Mac MacOS和其他Unix / Linux系統上的,或者 可以安裝在Windows上.

要檢索訪問令牌,您可以發出POST請求:

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

您必須通過此調用傳遞以下標頭:

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

整個 {client_id}:{client_secret} 字符串必須經過Base64編碼(如果您將字符串傳遞為,curl會自動對字符串進行Base64編碼 --user 證書; 在其他語言中,您需要自己處理Base64編碼)。

您還必鬚髮送以下鍵/值對作為請求正文或URL參數:

      grant_type=client_credentials

響應將如下所示(為便於閱讀,此處打印得很漂亮):

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

access_token 價值是您必須傳遞的 Authorization 標頭以及以下形式的API調用:

      Authorization: Bearer {access_token}

expired_in value是訪問令牌有效的秒數。

有關更多信息和示例代碼,請參見 獲取訪問令牌


頁面最後更新於12年2020月XNUMX日