soporte Contactar con asistencia técnica | estado del sistema Estado del Sistema

Características: OAuth API

La implementación de Brightcove de OAuth2 le permite obtener tokens de acceso para varias API de Brightcove.

Resumen

La implementación de Brightcove consta de dos partes:

  • La OAuth API - Proporciona acceso a todas las funcionalidades disponibles de OAuth.

  • La interfaz de usuario de credenciales de OAuth: accesible a través de la interfaz de configuración de la cuenta en Studio, la interfaz de usuario proporciona una manera fácil de registrar aplicaciones que utilizarán las API de Brightcove y generarán un ID de cliente y un secreto de cliente para ellas. Ver Administrar Credenciales de Autenticación API para obtener instrucciones sobre el uso de la interfaz de usuario de OAuth.

Ver también el Referencia de la API.

Glosario de términos

OAuth

Un estándar abierto para la autorización. OAuth proporciona a las aplicaciones cliente un "acceso delegado seguro" a los recursos del servidor en nombre del propietario de un recurso. OAuth esencialmente permite que los tokens de acceso sean emitidos a clientes de terceros por un servidor de autorización, con la aprobación del propietario del recurso. El cliente luego usa el token de acceso para acceder a los recursos protegidos alojados por el servidor de recursos

alcance

Un objeto de datos que describe un conjunto de recursos (accesible a través de una API) y algunas operaciones sobre esos recursos (como "leer" y "escribir"). El alcance de un token de acceso limita lo que puede hacer presentando ese token.

cliente

Una aplicación utilizada por un usuario final para acceder a un recurso a través de una API de Brightcove.

Identificación del cliente

Un identificador único para un cliente generado por el servicio OAuth.

comprador secreto

Una cadena de bits que, utilizada con una identificación de cliente, sirve como contraseña para autenticar a un cliente.

Token de acceso

Una cadena de bits que proporciona acceso temporal a una API. Los tokens de acceso son devueltos por el servicio OAuth para un cliente que lo solicite.

flujo

Secuencia de operaciones que resulta en el acceso exitoso a un recurso protegido por OAuth.

URL base

La URL base para el OAuth API es:

    https://oauth.brightcove.com/v4
    
    

Flujo de credenciales del cliente

En el flujo de credenciales del cliente, su aplicación solicitará un token de acceso, pasando su identificación de cliente y secreto de cliente al servicio OAuth con la solicitud. Actualmente, este es el único flujo admitido por los clientes de Brightcove.

Exactamente cómo funcionará el flujo de credenciales del cliente dependerá de la situación.

Aplicación de organización

En este escenario, tiene una aplicación que necesita interactuar con una o más API de Brightcove, solo para la cuenta o cuentas que pertenecen a su organización. La aplicación no está vinculada a ningún usuario específico. En este caso, el flujo de trabajo se ve así:

Flujo de trabajo de credenciales de cliente para la aplicación de la organización
Flujo de trabajo de credenciales de cliente para la aplicación de la organización

Para implementar este escenario, haría lo siguiente:

  1. Al usar la interfaz de usuario OAuth o el servicio OAuth, obtenga una identificación de cliente y un secreto para su aplicación: la interfaz de usuario le permite obtener una identificación de cliente y un secreto para una sola cuenta o para varias. Esta es una operación de una sola vez.

  2. Agregue lógica a su aplicación del lado del servidor para realizar solicitudes a la OAuth API para los tokens de acceso. La implementación dependerá del idioma de su aplicación (y le recomendamos que utilice un Biblioteca OAuth2 para su idioma si es posible), pero la llamada que hará será una solicitud POST para:

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

    La client_id y client_secret se pasan como el username:password en un encabezado de Autorización básica:

        Authorization: Basic {client_id}:{client_secret}
        
        

    La totalidad {client_id}:{client_secret} La cadena debe estar codificada en Base64 (en Node.js, por ejemplo, puede usar Buffer.toString("base64") método). CURL hace la codificación BASE64 automáticamente, por lo que puede pasar las credenciales como user {client_id}:{client_secret}. También necesita incluir un Content-Type: application/x-www-form-urlencoded cabecera.

    El cuerpo de la solicitud contendrá el par clave / valor grant_type=client_credentials. Tenga en cuenta que desde la Content-type is x-www-form-urlencoded, también puede agregar esto a la URL de solicitud como un parámetro:

        https://oauth.brightcove.com/v4/access_token?grant_type=client_credentials

    A continuación se muestra una aplicación Node.js muy básica que obtendrá un access_token dado un válido client_id y client_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. El cuerpo de respuesta tendrá el siguiente aspecto:

        {
        "access_token": "ACikM-7Mu04V5s7YBlKgTiPu4ZO3AsTBlWt-73l5kXRN4IeRuIVlJHZkq_lFQdZBYfzT9B_nHNgcmNFdalxSiNdqOBaaV7wQCCnRCua_efHNCg9d_yLbezcjxr3AGcBKy9a8_t-uTMTA46T24LKMOBGBNJFkyATSZI4JuxU71VIyGF9hDisbKHmKC5G5HdQ0nJgyCD1w1zkKrB1CpFb5iiBuA_XOzehF-Xf5DBYnSkDhzzByuFwTv9dU9d7W6V2OuiKiTzCzY3st01qJTk6-an6GcAOD4N5pdN8prvvMDQhz_HunJIamvVGqBz7o3Ltw8CFFJMXKQdeOF8LX31BDnOvMBEz-xvuWErurvrA0r6x5eZH8SuZqeri4ryZAsaitHiJjz9gp533o",
        "token_type": "Bearer",
        "expires_in": 300
        }
        
        

    Necesitarás capturar el access_token. A menos que sus llamadas sean intermitentes, en cuyo caso solicitará una nueva access_token por cada llamada API, también querrás capturar expires_in valor para que pueda usarlo para solicitudes posteriores para comprobar si su token sigue siendo válido; de lo contrario, deberá solicitar uno nuevo. los expires_in el valor está en segundos.

  4. Una vez que tienes el access_token, puede llamar a la API de Brightcove, incluido el token en Authorization encabezado en el formulario:

        Authorization: Bearer {access_token}
        
        

Vea Obtener tokens de acceso para más detalles y muestras de código.

Autorización general

Este escenario se aplica principalmente a los socios de Brightcove que crearán aplicaciones que pueden usar los usuarios de Brightcove en varias organizaciones. El flujo de trabajo para este escenario tiene el siguiente aspecto:

Flujo de trabajo de credencial de cliente para la aplicación de múltiples organizaciones
Flujo de trabajo de credenciales de cliente para aplicaciones de múltiples organizaciones

La única diferencia en la implementación de este escenario en lugar de la primera es que el usuario debe obtener un ID de cliente y un secreto para su aplicación de la UI de OAuth y proporcionárselos mediante un formulario. A continuación, los pasará a su aplicación para enviarlos con la solicitud de un access_token. Aparte de eso, todo será igual.

Obtenga Credenciales de Cliente

La forma más fácil de obtener las credenciales del cliente (el client_id y client_secret) es usar el OAuth UI. Sin embargo, si prefiere obtenerlos directamente del Servicio OAuth, puede hacerlo haciendo una solicitud POST a https://oauth.brightcove.com/v4/client_credentials, pasando los siguientes encabezados:

  • Content-Type: application/json
  • Authorization: BC_TOKEN your BC_TOKEN

También debe enviar un objeto JSON como carga útil:

    {
      "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"
    }
    
    

Operaciones

Lo único que variará aquí es el operations valor, que dependerá de la API a la que desee acceder y de si desea acceder a operaciones de lectura, escritura o ambas. Ver Operaciones API para solicitudes de credenciales de clientes para obtener una lista de todas las operaciones actualmente admitidas.

Para obtener guías detalladas para obtener las credenciales del cliente usando Curl o Postman, consulte:

Trabajando con OAuth

Para crear lógica para manejar tokens de acceso para sus solicitudes de API, hay dos formas generales de proceder.

Si está compilando una sola aplicación del lado del servidor, tiene sentido construir la lógica en la aplicación. La secuencia de operaciones se verá así:

Secuencia de aplicación única
Secuencia de aplicación única

Si, en cambio, va a construir múltiples aplicaciones que necesitarán realizar llamadas a las API de Brightcove, o si está creando una aplicación web del lado del cliente, tiene más sentido consolidar el código para obtener tokens de acceso en un solo proxy. En este caso, la secuencia de operaciones se verá así:

Secuencia Proxy
Secuencia Proxy

ver el Quick Start para obtener instrucciones detalladas sobre cómo crear un proxy simple.

Ejemplos de clientes y bibliotecas

Asimismo, hemos creado ejemplos de implementaciones de cliente en varios idiomas para darle modelos para implementaciones.

También hay bibliotecas OAuth2 disponibles para varios idiomas, y generalmente le recomendamos que use estas bibliotecas cuando sea posible, en lugar de crear interacción con OAuth API. A continuación se muestra una lista parcial de las bibliotecas disponibles. Para una lista más extensa, vea http://oauth.net/2/

Pitón
PHP
Cacao
Cacao
iOS
iPhone y iPad
iOS y Mac MacOS
iOS y Mac MacOS
Java
Rubí
. NET
Qt / C ++
O2

Página actualizada por última vez el 12 jun 2020