지원 지원 문의 | 시스템 상태 시스템 상태

개요 : OAuth API

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

개요

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

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

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

또한 API 참조.

용어 해설

OAuth를

승인을위한 공개 표준. OAuth는 클라이언트 응용 프로그램에 자원 소유자를 대신하여 서버 자원에 '안전한 위임 된 액세스'를 제공합니다. OAuth는 기본적으로 자원 소유자의 승인을 받아 인증 토큰에 의해 액세스 토큰이 제 3 자 클라이언트에게 발행되도록합니다. 그런 다음 클라이언트는 액세스 토큰을 사용하여 리소스 서버가 호스트하는 보호 된 리소스에 액세스합니다

범위

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

클라이언트

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

고객 ID

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

비밀 구매자

클라이언트 ID와 함께 사용되는 비트 열로 클라이언트를 인증하는 암호 역할을합니다.

액세스 토큰

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

흐름

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

기본 URL

의 기본 URL OAuth API 입니다

    https://oauth.brightcove.com/v4
    
    

클라이언트 자격증 명 흐름

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

클라이언트 신임 플로우가 정확히 작동하는 f}은 시나리오에 따라 다 (니다.

조직 앱

이 시나리오에서는 조직에 속한 계정에 대해서만 하나 이상의 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: Basic {client_id}:{client_secret}
        
        

    전체 {client_id}:{client_secret} string은 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 is 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/

점을 치는 영
PHP
코코아
코코아
아이폰 OS
iPhone 및 iPad
iOS 및 Mac MacOS
iOS 및 Mac MacOS
자바
루비
. NET
Qt / C ++
O2

12 년 2020 월 XNUMX 일에 마지막으로 업데이트 된 페이지