서문
대부분의 브라이트코브 REST API는 OAuth2를 인증의 기반으로 사용하며, OAuth 구현에 대해서는 다음 섹션에서 자세히 살펴보겠습니다.
그러나 먼저 두 API는 서로 다른 인증 접근 방식을 사용합니다.
정책 키 인증: 재생 API
그만큼재생 API주로 플레이어 또는 웹 포털에서 비디오 및 재생 목록 데이터를 검색하는 데 사용되며policy_key
, 인증을 위해 일반적으로 인수로 전달됩니다. Accept
머리글:
Accept: application/json;pk={policy_key}
API 키 인증: 라이브 API
그만큼라이브 API요청을 인증하도록 계정을 설정할 때 제공되는 API 키를 사용합니다. API 키는X-API-KEY
헤더에 전달됩니다.
X-API-KEY : {YOUR_APIKey}
OAuth2 인증
비디오 클라우드용 다른 REST API는 인증을 위해 OAuth2를 사용합니다. OAuth2에 익숙한 사용자는 클라이언트 자격 증명 흐름을 사용합니다. 관련된 두 가지 작업이 있습니다.
- 클라이언트 자격 증명 가져오기:이 작업은 Studio에서 관리 도구의API 인증페이지를 사용하여 가장 쉽게 수행할 수 있는 일회성 작업입니다. 보다 API 인증 자격 증명 관리자세한 내용 및 단계별 지침을 참조하십시오.
- 액세스 토큰 가져 오기:각 API 요청에는
Authorization
헤더에 전송 된 액세스 토큰이 있어야합니다.Authorization: Bearer {access_token}
액세스 토큰은 5 분 동안 사용되므로 반복되는 API 요청을 생성하는 프로세스를 실행하지 않으면 각 요청에 대해 새 요청을 얻고 싶을 것입니다.
액세스 토큰은 요청에 따라 클라이언트 자격 증명을 브라이트코브의 OAuth API로 전송하여 얻을 수 있습니다. 보다액세스 토큰 얻기자세한 내용은. 또 한있다샘플 앱 API 호출 테스트를 위해 일회용 토큰을 얻는 데 사용할 수 있습니다. 인기있는 REST 클라이언트를 구성하기위한 지침도 있습니다. 우편 집배원과잠 잘 수 없음 .
OAuth API를 통한 클라이언트 자격 증명
OAuth API를 사용하여 클라이언트 자격 증명을 만들거나 만들어야하는 경우 클라이언트 자격 증명을 가져 오는 과정을 안내하는 단계는 다음과 같습니다. 먼저 클라이언트 자격 증명 요청에 대해 인증하는 데 사용되는 BC_TOKEN을 가져와야합니다.
귀하BC_TOKEN
및 계좌 번호 받기
당신은 얻을 스튜디오에 로그인해야합니다BC_TOKEN
.
- 평소와 같이 Studio에 로그인합니다.
- 계정 번호 (Studio에서는 게시자 ID라고 함)가 필요합니다. Studio의 계정 정보로 이동하여 얻을 수 있습니다.
계정 ID - 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을 누르십시오.
- 다음을 포함하는 프롬프트가 나타납니다
BC_TOKEN
.BC_토큰 - BC_TOKEN이있는 경우클라이언트 자격 증명 가져 오기부분; 어떤 이유로 이전 단계를 사용하여 BC_TOKEN을 얻지 못한 경우 콘솔로 이동하여 다음을 입력하십시오.
document.cookies
을 누르고 Return을 누릅니다. - 페이지의 모든 쿠키는 세미콜론으로 구분된 목록으로 반환됩니다. 목록에서 BC_TOKEN 쿠키를 찾아 값을 복사하십시오.
콘솔에서 BC_TOKEN 가져오기
가져 오기client_credentials
이제 OAuth 서비스를 호출하여 클라이언트 자격 증명을 검색할 준비가 되었습니다. 자격 증명을 요청하는 클라이언트 애플리케이션 이름을 지정해야합니다. 이름은 임의적이며 자격 증명의 용도를 추적하는 데 도움이됩니다. 여기서는 "ingest-profiles-api-client"만 사용합니다. 또한 배열에서 액세스하려는 작업의 범위를 지정해야하며 여기서 사용할 것입니다. 사용 가능한 작업은 다음과 같습니다. 클라이언트 자격 증명 요청을위한 API 작업 . 아래 단계에서는 Ingest Profiles API에 필요한 작업을 지정합니다.
- 다음 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
- 응답은 다음과 같아야합니다 (형식이 추가됨).
{ "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 }
- 복사 및 저장
client_id
과client_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는 액세스 토큰이 유효한 시간 (초)입니다.
자세한 내용 및 샘플 코드는액세스 토큰 얻기