지원 고객 지원 문의 | 시스템 상태 시스템 상태
페이지 내용

    API 요청에 대한 인증

    이 항목에서는 브라이트코브 REST API 요청에 대한 인증에 대해 설명합니다.

    서문

    대부분의 브라이트코브 REST API는 OAuth2를 인증의 기반으로 사용하며, OAuth 구현에 대해서는 다음 섹션에서 자세히 살펴보겠습니다.

    그러나 먼저 두 API는 서로 다른 인증 접근 방식을 사용합니다.

    정책 키 인증: 재생 API

    그만큼재생 API주로 플레이어 또는 웹 포털에서 비디오 및 재생 목록 데이터를 검색하는 데 사용되며policy_key , 인증을 위해 일반적으로 인수로 전달됩니다. Accept머리글:

            Accept: application/json;pk={policy_key}

    Brightcove 플레이어를 위해 정책 키가 자동으로 생성되며플레이어 구성 , 또는정책 API

    API 키 인증: 라이브 API

    그만큼라이브 API요청을 인증하도록 계정을 설정할 때 제공되는 API 키를 사용합니다. API 키는X-API-KEY헤더에 전달됩니다.

            X-API-KEY : {YOUR_APIKey}

    OAuth2 인증

    비디오 클라우드용 다른 REST API는 인증을 위해 OAuth2를 사용합니다. OAuth2에 익숙한 사용자는 클라이언트 자격 증명 흐름을 사용합니다. 관련된 두 가지 작업이 있습니다.

    1. 클라이언트 자격 증명 가져오기:이 작업은 Studio에서 관리 도구의API 인증페이지를 사용하여 가장 쉽게 수행할 수 있는 일회성 작업입니다. 보다 API 인증 자격 증명 관리자세한 내용 및 단계별 지침을 참조하십시오.
    2. 액세스 토큰 가져 오기:각 API 요청에는Authorization헤더에 전송 된 액세스 토큰이 있어야합니다.
              Authorization: Bearer {access_token}

      액세스 토큰은 5 분 동안 사용되므로 반복되는 API 요청을 생성하는 프로세스를 실행하지 않으면 각 요청에 대해 새 요청을 얻고 싶을 것입니다.

      액세스 토큰은 요청에 따라 클라이언트 자격 증명을 브라이트코브의 OAuth API로 전송하여 얻을 수 있습니다. 보다액세스 토큰 얻기자세한 내용은. 또 한있다샘플 앱 API 호출 테스트를 위해 일회용 토큰을 얻는 데 사용할 수 있습니다. 인기있는 REST 클라이언트를 구성하기위한 지침도 있습니다. 우편 집배원잠 잘 수 없음 .

    OAuth API를 통한 클라이언트 자격 증명

    OAuth API를 사용하여 클라이언트 자격 증명을 만들거나 만들어야하는 경우 클라이언트 자격 증명을 가져 오는 과정을 안내하는 단계는 다음과 같습니다. 먼저 클라이언트 자격 증명 요청에 대해 인증하는 데 사용되는 BC_TOKEN을 가져와야합니다.

    귀하BC_TOKEN및 계좌 번호 받기

    당신은 얻을 스튜디오에 로그인해야합니다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);

      ... 그리고 Return을 누르십시오.

    4. 다음을 포함하는 프롬프트가 나타납니다BC_TOKEN .
      BC_토큰
      BC_토큰
    5. BC_TOKEN이있는 경우클라이언트 자격 증명 가져 오기부분; 어떤 이유로 이전 단계를 사용하여 BC_TOKEN을 얻지 못한 경우 콘솔로 이동하여 다음을 입력하십시오. document.cookies을 누르고 Return을 누릅니다.
    6. 페이지의 모든 쿠키는 세미콜론으로 구분된 목록으로 반환됩니다. 목록에서 BC_TOKEN 쿠키를 찾아 값을 복사하십시오.
      콘솔에서 BC_TOKEN 가져오기
      콘솔에서 BC_TOKEN 가져오기

    가져 오기client_credentials

    이제 OAuth 서비스를 호출하여 클라이언트 자격 증명을 검색할 준비가 되었습니다. 자격 증명을 요청하는 클라이언트 애플리케이션 이름을 지정해야합니다. 이름은 임의적이며 자격 증명의 용도를 추적하는 데 도움이됩니다. 여기서는 "ingest-profiles-api-client"만 사용합니다. 또한 배열에서 액세스하려는 작업의 범위를 지정해야하며 여기서 사용할 것입니다. 사용 가능한 작업은 다음과 같습니다. 클라이언트 자격 증명 요청을위한 API 작업 . 아래 단계에서는 Ingest Profiles API에 필요한 작업을 지정합니다.

    1. 다음 curl 명령을 편집한 다음 명령줄에 붙여넣고Return키를 누릅니다. 다음 세 가지 값에 대해 특정 값을 제공해야 합니다.
      • 귀하의 BC_토큰
      • 자격 증명 이름
      • 귀하의 계정 ID
            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 요청에 대해 새로 가져와야합니다. 물론 가장 최근의 액세스 토큰을 확인하여 시간이 초과되었는지 확인하는 로직을 앱에 빌드 할 수 있지만 Ingest Profiles API에 대한 요청은 그 사이에 거의 없을 가능성이 높으므로 그렇게 할 이유가 없습니다. .

    실제로 API는 앱을 전혀 만들 가치가 없을 정도로 자주 사용하지 않을 수 있습니다. 대안은이 쉘 스크립트 Brightcove Learning Services가 구축 한 것입니다. 클라이언트 ID와 시크릿, API 요청 및 방법, 모든 요청 데이터를 입력 할 수 있습니다. 그런 다음access_token , API 요청을하고 응답을 출력합니다. (셸 스크립트는 Mac MacOS 및 기타 Unix / Linux 시스템에 기본적으로 설치되는 cURL을 사용합니다. 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값은 다음 형식으로 API 호출과 함께Authorization헤더에 전달해야하는 값입니다.

          Authorization: Bearer {access_token}

    그만큼expired_in value는 액세스 토큰이 유효한 시간 (초)입니다.

    자세한 내용 및 샘플 코드는액세스 토큰 얻기