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í:

Para implementar este escenario, haría lo siguiente:
-
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.
-
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
yclient_secret
se pasan comousername: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 elBuffer.toString("base64")
método). CURL hace la codificación BASE64 automáticamente, por lo que puede pasar las credenciales comouser {client_id}:{client_secret}
. También necesita incluir unContent-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 queContent-type
esx-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álidoclient_id
yclient_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); });
-
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 nuevaaccess_token
para cada llamada API, también querrá capturar elexpires_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. Elexpires_in
valor está en segundos. -
Una vez que tenga el
access_token
, puede llamar a la API de Brightcove, incluido el token en elAuthorization
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:

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í:
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í:
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
-
- Gema de rubí
- Rubí
- .NET
- Qt/C++
- O2