支持 聯繫支持 | 系統狀況 系統狀態
頁面內容

    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是訪問令牌有效的秒數。

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


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