soporte Contactar con Soporte | Estadoestado del sistema del sistema
Contenido de la página

    Resumen: 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 API de OAuth: proporciona acceso a todas las funciones disponibles de OAuth

    • La interfaz de usuario de credenciales de OAuth: accesible a través de la interfaz de configuración de cuenta en Studio, la interfaz de usuario proporciona una forma 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. Consulte Administración de credenciales de autenticación de API para obtener instrucciones sobre el uso de la interfaz de usuario de OAuth.

    Consulte también la Referencia de API.

    Glosario de términos

    OAuth

    Un estándar abierto para la autorización. Con OAuth, las aplicaciones cliente disponen de un 'acceso delegado seguro' a los recursos del servidor en nombre del propietario de dichos recursos. OAuth permite esencialmente que un servidor de autorización emita tokens de acceso a clientes de terceros, con la aprobación del propietario del recurso. A continuación, el cliente utiliza el token de acceso para acceder a los recursos protegidos alojados por el servidor de recursos

    alcance

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

    cliente

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

    ID de cliente

    Identificador único para un cliente generado por el servicio OAuth.

    secreto del cliente

    Cadena de bits que, usada con un ID de cliente, sirve como contraseña para autenticar un cliente.

    token de acceso

    Cadena de bits que proporciona acceso temporal a una API. Los tokens de acceso son devueltos por el servicio OAuth para un cliente a petición.

    flujo

    Secuencia de operaciones que da como resultado el acceso correcto a un recurso protegido por OAuth-protegido.

    URL base

    La URL base para la API de OAuth es:

        https://oauth.brightcove.com/v4
        
        

    Flujo de credenciales de cliente

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

    Exactamente cómo funcionará el flujo de credenciales de cliente dependerá del escenario.

    Aplicación organizacional

    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 aplicaciones organizativas
    Flujo de trabajo de credenciales de cliente para aplicaciones organizativas

    Para implementar este escenario, haría lo siguiente:

    1. Usando la interfaz de usuario de OAuth o el servicio OAuth, obtenga un ID de cliente y un secreto para su aplicación: la interfaz de usuario le permite obtener un ID de cliente y secreto para una sola cuenta o 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 API de OAuth para tokens de acceso. La implementación dependerá del idioma de su aplicación (y se le anima a usar una biblioteca OAuth2 existente para su idioma si es posible), pero la llamada que realizará será una solicitud POST para:

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

      El client_id y client_secret se pasan como username:password en un encabezado de autorización básica:

          Authorization: Basic {client_id}:{client_secret}
          
          

      Toda la {client_id}:{client_secret} cadena debe estar codificada en Base64 (en Node.js, por ejemplo, puede usar el 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 encabezado.

      El cuerpo de la solicitud contendrá el par clave/valor grant_type=client_credentials. Tenga en cuenta que dado que Content-type es 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
          }
          
          

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

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

          Authorization: Bearer {access_token}
          
          

    Consulte Obtención de tokens de acceso para obtener más detalles y ejemplos de código.

    Autorización general

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

    Flujo de trabajo de credenciales de cliente para aplicaciones multiorganización
    Flujo de trabajo de credenciales de cliente para aplicaciones multiorganización

    La única diferencia en la implementación de este escenario en lugar del primero es que el usuario debe obtener un ID de cliente y un secreto para su aplicación desde la interfaz de usuario de OAuth y proporcionárselos a través de un formulario. A continuación, pasará estos a su aplicación para enviarlos con la solicitud de un access_token. Aparte de eso, todo será igual.

    Obtener credenciales de cliente

    La forma más fácil de obtener credenciales de cliente (el client_id y client_secret ) es usar la interfaz de usuario de OAuth. 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 necesita 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 acceso para leer, escribir o ambas operaciones. Consulte Operaciones de API para solicitudes de credenciales de cliente para obtener una lista de todas las operaciones admitidas actualmente.

    Para obtener guías detalladas para obtener credenciales de cliente usando curl o Postman, consulte:

    Trabajar con OAuth

    Para construir lógica para manejar la obtención de tokens de acceso para sus solicitudes de API, hay dos formas generales de proceder.

    Si está construyendo 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 su lugar va a crear varias aplicaciones que necesitarán realizar llamadas a las API de Brightcove, o si crea una aplicación web del lado del cliente, tiene más sentido consolidar el código para obtener tokens de acceso en un único proxy. En este caso, la secuencia de operaciones se verá así:

    Secuencia proxy
    Secuencia proxy

    Consulte Inicio rápido para obtener instrucciones detalladas sobre cómo crear un proxy simple.

    Muestras y bibliotecas de clientes

    Hemos creado implementaciones de cliente de ejemplo en varios idiomas para ofrecerle modelos para implementaciones.

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

    Python
    PHP
    Cacao
    Cacao
    iOS
    iPhone y iPad
    MacOS para iOS y Mac
    MacOS para iOS y Mac
    Java
    Ruby
    .NET
    Qt/C++
    O2

    Última actualización de la página el 28-09-2020