En esta guía se explica cómo crear una firma y los campos obligatorios y opcionales de las firmas.
Para crear una firma, debes componer una cadena que se va a firmar, a la que llamamos valor firmado en esta guía. El valor firmado incluye parámetros que describen el contenido que estás protegiendo, el tiempo de vencimiento del valor firmado, etc.
El valor firmado se usa al crear una cadena de firma. Para crear una cadena de firma, debes componer los parámetros de la firma, como una firma Ed25519 de clave asimétrica del valor firmado.
Media CDN usa la firma compuesta final para proteger tu contenido.
Formatos de firma admitidos
Media CDN admite los siguientes formatos de solicitud firmada.
Formato | Comportamiento | Ejemplo |
---|---|---|
Parámetros de consulta (URL exacta) |
URL exacta para conceder acceso a una URL específica. |
Exacta:
|
Parámetros de consulta (prefijo de URL) |
Si especifica un URLPrefix , puede firmar un prefijo y añadir los mismos parámetros de consulta a varias URLs en su reproductor o en la generación de manifiestos.
|
Qué firmar:
Sustituye |
Componente de ruta |
Prefijo: permite el acceso a cualquier URL con un prefijo anterior al componente De esta forma, las URLs de manifiesto relativas pueden heredar automáticamente el componente de URL firmado al obtener subrecursos. |
https://media.example.com/video/edge-cache-token=Expires=EXPIRATION
|
Cookie firmada | Prefijo: la cookie permite acceder a cualquier URL con el prefijo especificado
en el valor URLPrefix firmado.
|
Edge-Cache-Cookie:
|
Crear una firma
Crea un valor firmado concatenando una cadena que contenga los campos de firma obligatorios y los campos de firma opcionales que quieras.
Si se especifica,
URLPrefix
debe ir en primer lugar, seguido deExpires
,KeyName
y, a continuación, los parámetros opcionales.Separa cada campo y los parámetros con lo siguiente:
- En el caso de las cookies, usa el carácter de dos puntos
:
. - Para los parámetros de consulta y los componentes de la ruta, use el carácter et (
&
).
- En el caso de las cookies, usa el carácter de dos puntos
Firma el valor firmado con una firma Ed25519.
Añade un separador de campos (
:
o&
) seguido deSignature=
y la firma Ed25519 al final de la cadena.
Crear una URL firmada
En los siguientes ejemplos de código se muestra cómo crear una URL firmada mediante programación.
Go
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Crear un prefijo de URL firmada
En los siguientes ejemplos de código se muestra cómo crear de forma programática un prefijo de URL firmado.
Go
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Crear una cookie de URL firmada
En los siguientes ejemplos de código se muestra cómo crear una cookie de URL firmada mediante programación.
Go
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Crear un componente de ruta firmado
En los siguientes ejemplos de código se muestra cómo crear un componente de ruta firmada mediante programación.
Python
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Campos de firma obligatorios
Los siguientes campos son obligatorios en todas las firmas:
Expires
KeyName
Signature
Si hay parámetros de consulta, deben agruparse como los últimos parámetros de la URL. A menos que se indique lo contrario, en los nombres de los parámetros y sus valores se distingue entre mayúsculas y minúsculas.
En la siguiente tabla se explica cada parámetro:
Nombre del campo | Parámetros de firma | Valor firmado |
---|---|---|
Expires |
Número entero de segundos transcurridos desde el inicio del registro de tiempo de Unix (1970-01-01T00:00:00Z). | Expires=EXPIRATION_TIME , después de la cual la
firma deja de ser válida. |
KeyName |
El nombre del EdgeCacheKeyset usado para firmar esta solicitud. KeyName hace referencia a todo el conjunto de claves, no a las claves individuales que contiene.
|
KeyName=EDGE_CACHE_KEYSET |
Signature |
Versión de la firma codificada en base64. | No aplicable |
Campos de firma opcionales
Si hay parámetros de consulta, deben agruparse como los últimos parámetros de la URL. A menos que se indique lo contrario, en los nombres de los parámetros y sus valores se distingue entre mayúsculas y minúsculas.
En la siguiente tabla se explica el nombre y los detalles de cada parámetro de firma opcional:
Nombre del campo | Parámetros de firma | Valor firmado |
---|---|---|
HeaderName |
Nombre de un campo de encabezado de solicitud con nombre que debe estar presente en la solicitud. Debe estar en minúsculas cuando se firme, ya que los nombres de los campos de encabezado distinguen entre mayúsculas y minúsculas. Media CDN convierte el encabezado a minúsculas antes de validar la firma. |
HeaderName=HEADER_NAME |
HeaderValue |
Valor de un campo de encabezado de solicitud con nombre que debe estar presente en la solicitud. Normalmente, se trata de un ID de usuario u otro identificador opaco. Las solicitudes
con HeaderValue pero sin HeaderName se
rechazan.
|
HeaderValue=HEADER_VALUE |
IPRanges |
Lista de hasta cinco direcciones IPv4 e IPv6 en formato CIDR para las que esta URL es válida en formato base64 seguro para web. Por ejemplo, para especificar los intervalos de IP "192.6.13.13/32,193.5.64.135/32", debe especificar Puede que no sea útil incluir IPRanges en las firmas cuando los clientes corran el riesgo de sufrir migraciones de WAN o en los casos en los que la ruta de red al frontend de tu aplicación sea diferente de la ruta de entrega.
Media CDN rechaza a los clientes con un código A continuación, se indican algunos casos que pueden provocar que Media CDN rechace a los clientes con un código
Todos estos factores pueden contribuir a que un cliente determinado tenga una dirección IP no determinista durante una sesión de reproducción de vídeo. Si la dirección IP del cliente cambia después de que hayas concedido acceso y el cliente intenta descargar un segmento de vídeo en su búfer de reproducción, recibirá un |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
Prefijo de URL base64 (seguro para URLs) para conceder acceso. Si especifica un URLPrefix , puede firmar un prefijo y añadir los mismos parámetros de consulta a varias URLs de su reproductor o de su generación de manifiestos.
El campo URLPrefix es obligatorio cuando se usa el formato de cookie firmada.
|
URLPrefix=BASE_64_URL_PREFIX |