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

    개요: OAuth API

    Brightcove OAuth2 구현을 통해 다양한 Brightcove API에 대한 액세스 토큰을 얻을 수 있습니다.

    개요

    Brightcove의 구현은 다음 두 부분으로 구성됩니다.

    • OAuth API-사용 가능한 모든 OAuth 기능에 대한 액세스를 제공합니다.

    • OAuth 자격 증명 UI - Studio의 계정 설정 인터페이스를 통해 액세스할 수 있는 UI를 통해 브라이트코브 API를 사용하는 앱을 등록하고 클라이언트 ID와 클라이언트 암호를 생성하는 쉬운 방법을 제공합니다. OAuth UI 사용에 대한 지침은API 인증 자격 증명 관리를참조하십시오.

    또한 참조 API 참조 .

    용어 설명

    OAuth

    승인을위한 개방형 표준. OAuth는 클라이언트 응용 프로그램에 리소스 소유자를 대신하여 서버 리소스에 대한 '안전한 위임 된 액세스'를 제공합니다. OAuth는 기본적으로 리소스 소유자의 승인을 받아 권한 부여 서버가 타사 클라이언트에 액세스 토큰을 발급 할 수 있도록합니다. 그런 다음 클라이언트는 액세스 토큰을 사용하여 리소스 서버에서 호스팅하는 보호 된 리소스에 액세스합니다.

    범위

    리소스 집합 (API를 통해 액세스 가능) 및 해당 리소스에 대한 일부 작업 (예 : "읽기"및 "쓰기")을 설명하는 데이터 개체입니다. 액세스 토큰의 범위는 해당 토큰을 제공하여 수행 할 수있는 작업을 제한합니다.

    고객

    최종 사용자가 Brightcove API를 통해 리소스에 액세스하는 데 사용하는 앱입니다.

    클라이언트 ID

    OAuth 서비스에서 생성 된 클라이언트의 고유 식별자입니다.

    클라이언트 비밀

    클라이언트 ID와 함께 사용되며 클라이언트를 인증하기위한 암호 역할을하는 비트 문자열입니다.

    액세스 토큰

    API에 대한 임시 액세스를 제공하는 비트 문자열입니다. 액세스 토큰은 요청시 클라이언트에 대한 OAuth 서비스에서 반환됩니다.

    흐름

    OAuth로 보호 된 리소스에 성공적으로 액세스하는 작업 순서입니다.

    기본 URL

    OAuth API의 기본 URL은 다음과 같습니다.

        https://oauth.brightcove.com/v4
        
        

    클라이언트 자격 증명 흐름

    클라이언트 자격 증명 흐름에서 앱은 액세스 토큰을 요청하고 요청과 함께 클라이언트 ID와 클라이언트 암호를 OAuth 서비스에 전달합니다. 현재 이것은 Brightcove 고객에게 지원되는 유일한 흐름입니다.

    클라이언트 자격 증명 흐름의 정확한 작동 방식은 시나리오에 따라 다릅니다.

    조직 앱

    이 시나리오에는 조직에 속한 계정에 대해서만 하나 이상의 Brightcove API와 상호 작용해야하는 앱이 있습니다. 앱은 특정 사용자와 연결되어 있지 않습니다. 이 경우 워크 플로는 다음과 같습니다.

    조직 앱에 대한 클라이언트 자격 증명 워크플로
    조직 앱에 대한 클라이언트 자격 증명 워크플로

    이 시나리오를 구현하려면 다음을 수행합니다.

    1. OAuth UI 또는 OAuth 서비스를 사용하여 앱에 대한 클라이언트 ID와 시크릿을 가져옵니다. UI를 통해 단일 계정 또는 여러 계정에 대한 클라이언트 ID와 시크릿을 가져올 수 있습니다. 이것은 일회성 작업입니다.

    2. 서버 측 앱에 논리를 추가하여 액세스 토큰을 위해 OAuth API에 요청합니다. 구현은 앱의 언어에 따라 다릅니다 (기존 OAuth2 라이브러리가능한 경우 귀하의 언어로), 그러나 귀하가 할 전화는 다음과 같은 POST 요청이 될 것입니다.

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

      그만큼client_idclient_secret로 전달됩니다username:password기본 Authorization 헤더 :

          Authorization: Basic {client_id}:{client_secret}
          
          

      전체{client_id}:{client_secret}문자열은 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이다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}
          
          

    보다액세스 토큰 얻기자세한 내용과 코드 샘플은

    일반 승인

    이 시나리오는 주로 다양한 조직의 Brightcove 사용자가 사용할 수있는 앱을 만들 Brightcove 파트너에게 적용됩니다. 이 시나리오의 워크 플로는 다음과 같습니다.

    다중 조직 앱에 대한 클라이언트 자격 증명 워크 플로
    다중 조직 앱에 대한 클라이언트 자격 증명 워크 플로

    첫 번째 시나리오가 아닌이 시나리오를 구현할 때의 유일한 차이점은 사용자가 OAuth UI에서 앱에 대한 클라이언트 ID와 시크릿을 가져 와서 양식을 통해 제공해야한다는 것입니다. 그런 다음이를 앱에 전달하여 요청과 함께 제출합니다. access_token . 그 외에는 모든 것이 동일합니다.

    클라이언트 자격 증명 얻기

    클라이언트 자격 증명을 얻는 가장 쉬운 방법 ( client_idclient_secret )는 OAuth UI . 그러나 OAuth 서비스에서 직접 가져 오는 것을 선호하는 경우 POST 요청을 수행하여 수행 할 수 있습니다. 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 요청에 대한 액세스 토큰 가져 오기를 처리하는 로직을 빌드하려면 두 가지 일반적인 진행 방법이 있습니다.

    단일 서버 측 앱을 빌드하는 경우 논리를 앱에 빌드하는 것이 좋습니다. 작업 순서는 다음과 같습니다.

    단일 앱 시퀀스
    단일 앱 시퀀스

    대신 Brightcove API를 호출해야하는 여러 앱을 빌드하거나 클라이언트 측 웹 앱을 만드는 경우 액세스 토큰을 단일 프록시로 가져 오기위한 코드를 통합하는 것이 더 합리적입니다. 이 경우 작업 순서는 다음과 같습니다.

    프록시 시퀀스
    프록시 시퀀스

    참조빠른 시작간단한 프록시 생성에 대한 자세한 지침은

    클라이언트 샘플 및 라이브러리

    우리는샘플 클라이언트 구현여러 언어로 구현을위한 모델을 제공합니다.

    여러 언어로 사용할 수있는 OAuth2 라이브러리도 있으며 일반적으로 OAuth API와의 상호 작용을 구축하는 대신 가능하면 이러한 라이브러리를 사용하는 것이 좋습니다. 다음은 사용 가능한 라이브러리의 일부 목록입니다. 보다 광범위한 목록은 다음을 참조하십시오. http://oauth.net/2/

    Python
    PHP
    코코아
    코코아
    iOS
    iPhone 및 iPad
    iOS 및 Mac MacOS
    iOS 및 Mac MacOS
    Java
    Ruby
    .NET
    Qt / C ++
    O2