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

    Autenticación para solicitudes de API

    En este tema se trata la autenticación para solicitud a las API REST de Brightcove.

    Introducción

    La mayoría de las API REST de Brightcove utilizan OAuth2 como base para la autenticación, y veremos la implementación de OAuth con más detalle en las siguientes secciones.

    En primer lugar, sin embargo, tenga en cuenta que dos API utilizan enfoques diferentes para la autenticación:

    Autenticación de clave de directiva Playback API

    La API de reproducción utilizada principalmente para recuperar datos de vídeo y lista de reproducción de reproductores o portales web, utiliza un policy_key , para la autenticación, generalmente pasado como argumento en un Accept encabezado:

            Accept: application/json;pk={policy_key}

    Las claves de política se generan automáticamente para los jugadores de Brightcove y pueden tomarse de la configuración de un reproductor o generarse mediante la API de directivas

    Autenticación de clave API: API en vivo

    Live API utiliza una clave de API que se proporciona cuando se configura la cuenta para autenticar solicitudes. La clave API se pasa en un encabezado:X-API-KEY

            X-API-KEY : {YOUR_APIKey}

    Autenticación OAuth2

    Las otras API REST para Video Cloud utilizan OAuth2 para la autenticación. Para aquellos que están familiarizados con OAuth2, utilizamos un flujo de credenciales de cliente. Hay dos operaciones involucradas:

    1. Obtener credenciales de cliente: se trata de una operación única que se lleva a cabo más fácilmente mediante la página Autenticación de API de las herramientas de administración en Studio. Consulte Administración de credenciales de autenticación de API para obtener detalles e instrucciones paso a paso.
    2. Obtener un token de acceso: cada solicitud de API debe contener un token de acceso enviado en un Authorization encabezado:
              Authorization: Bearer {access_token}

      Los tokens de acceso viven durante cinco minutos, por lo que a menos que ejecute un proceso que generará solicitudes API repetidas, probablemente solo desee obtener una nueva para cada solicitud.

      Los tokens de acceso se obtienen enviando las credenciales de cliente en una solicitud a la API OAuth de Brightcove. Consulte Obtención de tokens de acceso para obtener más detalles. También hay una aplicación de ejemplo que puede usar para obtener un token único para probar llamadas API. También hay instrucciones para configurar los populares clientes REST Postman e Insomnio.

    Credenciales de cliente a través de la API de OAuth

    Si desea o necesita crear credenciales de cliente utilizando la API de OAuth, a continuación se indican los pasos que le guiarán a través de la obtención de sus credenciales de cliente. Primero necesitará obtener su BC_TOKEN, que se utiliza para autenticarlo para la solicitud de credenciales de cliente.

    Obtener su número de cuenta BC_TOKEN y

    Tendrá que iniciar sesión en Studio para obtener su.BC_TOKEN

    1. Inicie sesión en Studio como lo hace normalmente.
    2. Necesita su número de cuenta (denominado ID del editor en Studio), que puede obtener yendo a la información de su cuenta en Studio:
      Identificador de cuenta
      Identificador de cuenta
    3. Con cualquier página de Studio abierta, abra las herramientas de desarrollador para el navegador, vaya a la Consola y pegue el siguiente código:
            var cookiesArray = document.cookie.split(";"), cookiesObj = {}, i, tmpArray = [];
            for (i = 0; i < cookiesArray.length; i++) {
                tmpArray = cookiesArray[i].split("=");
                if (tmpArray[0].indexOf('BC_TOKEN') > -1) {
                    cookiesObj.BC_TOKEN = tmpArray[1];
                }
            }
            window.prompt("BC_TOKEN:", cookiesObj.BC_TOKEN);

      ... y presione Return.

    4. Debería ver que aparezca un mensaje que contenga su:BC_TOKEN
      BC_TOKEN
      BC_TOKEN
    5. Si tiene su BC_TOKEN, vaya a la sección Obtener credenciales de cliente; si por alguna razón no obtuvo su BC_TOKEN siguiendo los pasos anteriores, simplemente vaya a la Consola, escriba y presione return.document.cookies
    6. Todas las cookies de la página se devolverán en una lista separada por punto y coma. Busque la cookie BC_TOKEN en la lista y copie el valor:
      Obtener BC_TOKEN desde la consola
      Obtener BC_TOKEN desde la consola

    Obtener client_credentials

    Ahora estamos listos para realizar la llamada al servicio OAuth para recuperar las credenciales del cliente. Tenemos que especificar un nombre de aplicación cliente para el que estamos solicitando credenciales - el nombre es arbitrario, destinado a ayudarle a realizar un seguimiento de lo que son las credenciales - y aquí solo usaremos «ingest-profiles-api-client». También tenemos que especificar el alcance de las operaciones a las que queremos acceder en una matriz, y aquí vamos a utilizar. Las operaciones disponibles se muestran en API Operations for Client Credenciales Solicitudes. En los pasos siguientes, especificará las operaciones necesarias para la API de perfiles de ingesta.

    1. Edite el siguiente comando curl, luego péguelo en la línea de comandos y presione Retorno. Debe proporcionar los valores específicos para los tres valores siguientes:
      • su BC_TOKEN
      • su nombre de credencial
      • su ID de cuenta
            curl \
              --include \
              --header "Authorization: BC_TOKEN your_BC_TOKEN" \
              --data 'name=ingest-profiles-api-client&maximum_scope=[{
                  "identity": {
                    "type": "video-cloud-account",
                    "account-id": your_account_id
                  },
                  "operations": [
                        "video-cloud/ingest-profiles/profile/read",
                        "video-cloud/ingest-profiles/profile/write",
                        "video-cloud/ingest-profiles/account/read",
                        "video-cloud/ingest-profiles/account/write"
                    ]
                }]' \
            https://oauth.brightcove.com/v4/client_credentials
    2. La respuesta debería verse así (formato agregado):
            {
              "redirect_url": null,
              "maximum_scope": [
                {
                  "identity": {
                    "type": "video-cloud-account",
                    "account-id": your_video_cloud_account_id
                  },
                  "operations": [
                    "video-cloud/ingest-profiles/profile/write",
                    "video-cloud/ingest-profiles/account/write",
                    "video-cloud/ingest-profiles/profile/read",
                    "video-cloud/ingest-profiles/account/read"
                  ]
                }
              ],
              "name_html": "ingest-profiles-api-client",
              "issued_to": "your_email@host.com",
              "trusted": null,
              "expires_at": null,
              "issued_at": "2015-06-01T15:09:00Z",
              "name": "ingest-profiles-api-client",
              "description_html": null,
              "revoked": null,
              "type": "credential",
              "client_secret": "Ifckr6cWtxOh_NZnEVhKCgcqZaqoMcPuoJ-VGuivIE_psPoPUt2hGqUK15uPON3x3m748ElazZoOKPxbI3-4nQ",
              "description": null,
              "client_id": "da270d86-f3cd-4ee6-85b0-047df97a0db2",
              "issued_user": your_video_cloud_account_id
            }
    3. Copie y guarde el client_id y client_secret , ya que necesitará estos en cualquier momento que necesite obtener un access_token.

    Acceder a tokens a través de la API de OAuth

    Los tokens de acceso, a diferencia de las credenciales del cliente, son de corta duración; actualmente caducan en 5 minutos. Necesitará obtener una nueva para cada solicitud de API. Por supuesto, podría compilar lógica en una aplicación para verificar el token de acceso más reciente para ver si se ha agotado el tiempo de espera, pero las solicitudes a la API de perfiles de ingest probablemente sean pocas y distantes, por lo que no hay una buena razón para hacerlo.

    De hecho, la API puede ser una que usará con poca frecuencia como para que no valga la pena construir una aplicación alrededor de ella en absoluto. Una alternativa sería utilizar este script de shell creado por Brightcove Learning Services. Le permite ingresar su ID de cliente y secreto, la solicitud y método de la API, y cualquier dato de solicitud. Luego obtiene un access_token, hace la solicitud API y genera la respuesta. (Tenga en cuenta que el script de shell utiliza cURL, que se instala de forma nativa en Mac OS y otros sistemas Unix/Linux, o puede instalarse en Windows.

    Para recuperar tokens de acceso, realice una solicitud POST a:

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

    Debe pasar los siguientes encabezados con esta llamada:

    • Content-Type: application/x-www-form-urlencoded
    • Authorization: Basic {client_id}:{client_secret}

    Toda la {client_id}:{client_secret} cadena debe estar codificada en Base64 (curl codificará automáticamente Base64 la cadena si la pasa como --user credenciales; en otros idiomas, deberá manejar la codificación Base64 usted mismo).

    También debe enviar el siguiente par clave/valor como el cuerpo de la solicitud o como parámetro URL:

          grant_type=client_credentials

    La respuesta se verá así (bonita impresa aquí para legibilidad):

          {
              "access_token": "ANB7xKhiUZmwltVd3f1odcHHM9VAwg02kwmLwtZwHv3SxGCOWLUf5W4G7X22PRjmR9StvFUqzpVZ1suOfyfOigdi-rnohxyEaSSuZceeLw_9OBW7fXldOG05HEgkeK3N-DBZZZyilodmjA1JWZHbgI3IU7Rmz5IPGyi-sDxHN3KlOr1BDZlLZpXPdFPwEyb6idq-z8AL-blKTSMtNI3_fz3oNBisfrHGUv5tXHoQT4B7FYcvdrap16gTOO7_wNt1zmgLJiUHvyxZgsgBchm_AhohVL-AYgcfCbCR0v7d2hgI4ag35pnZNeujDiBLfnCFcVMlqQGq8UEVZrmU9a8y4pVAGih_EImmghqmSrkxLPYZ800-vIWX-lw",
              "token_type": "Bearer",
              "expires_in": 300
          }

    El valor es lo que debe pasar en un encabezado con su llamada a la API en esta forma:access_tokenAuthorization

          Authorization: Bearer {access_token}

    El expired_in valor es el número de segundos para los que el token de acceso es válido.

    Para obtener más información y código de ejemplo, consulte Obtención de tokens de acceso


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