En esta guía, se explica cómo crear una firma y los campos obligatorios y opcionales para las firmas.
Para crear una firma, debes redactar una string para firmar, a la que nos referimos como valor firmado en esta guía. El valor firmado incluye parámetros que describen el contenido que proteges, la fecha de vencimiento del valor firmado, etcétera.
Usas el valor firmado mientras creas una string de firma. Para crear una string de firma, debes componer los parámetros de la firma, como una firma asimétrica de clave asimétrica Ed25519 del valor firmado.
Media CDN usa la firma compuesta final para ayudar a proteger el contenido.
Formatos de firma compatibles
Media CDN admite los siguientes formatos de solicitud firmados.
Formato | Comportamiento | Ejemplo |
---|---|---|
Parámetros de consulta (URL exacta) |
URL exacta, para otorgar acceso a una URL específica. |
Exacto:
|
Parámetros de consulta (prefijo de URL) |
Especificar un URLPrefix te permite firmar un prefijo y adjuntar los mismos parámetros de consulta a varias URL dentro de tu jugador o generación de manifiesto.
|
Qué firmar:
Reemplaza |
Componente de ruta |
Prefijo: Permite el acceso a cualquier URL con un prefijo antes del componente Esto permite que las URL de manifiesto relativas hereden de forma automática el componente de URL firmado cuando se recuperan subrecursos. |
https://media.example.com/video/edge-cache-token=Expires=EXPIRATION
|
Cookie firmada | Prefijo: La cookie permite el acceso a cualquier URL con el prefijo especificado en el valor URLPrefix firmado.
|
Cookie de almacenamiento en caché perimetral:
|
Crea una firma
Crea un valor firmado mediante la concatenación de una string que contenga los campos de firma obligatorios y los campos de firma opcionales deseados.
Si se especifica,
URLPrefix
debe ir primero, seguido deExpires
,KeyName
y, luego, cualquier parámetro opcional.Separa cada campo y cualquier parámetro con lo siguiente:
- Para las cookies, usa un carácter
:
de dos puntos. - Para los parámetros de consulta y los componentes de ruta de acceso, usa un carácter et
&
.
- Para las cookies, usa un carácter
Firma el valor firmado con una firma Ed25519.
Agrega un separador de campo (
:
o&
) seguido deSignature=
y la firma Ed25519 al final de la string.
Crea una URL firmada
En las siguientes muestras de código, se muestra cómo crear de manera programática una URL firmada.
Go
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Crea un prefijo de URL firmada
En las siguientes muestras de código, se muestra cómo crear de manera programática un prefijo de URL firmado.
Go
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Crea una cookie de URL firmada
En las siguientes muestras de código, se muestra cómo crear de manera programática una cookie de URL firmada.
Go
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Crea un componente de ruta de acceso firmado
En las siguientes muestras de código, se muestra cómo crear de manera programática un componente de ruta firmada.
Python
Para autenticarte en Media CDN, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Campos de firma obligatorios
Los siguientes campos son obligatorios para cada firma:
Expires
KeyName
Signature
Si los parámetros de consulta están presentes, deben agruparse como los últimos parámetros en la URL. A menos que se especifique lo contrario, en los nombres de los parámetros y en 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 con firma |
---|---|---|
Expires |
Número entero de segundos que transcurrieron desde la época Unix (1970-01-01T00:00:00Z) | Expires=EXPIRATION_TIME , después de lo cual la firma ya no es válida. |
KeyName |
El nombre de EdgeCacheKeyset que se usa para firmar esta solicitud. KeyName hace referencia a todo el conjunto de claves, no a claves individuales dentro del conjunto de claves.
|
KeyName=EDGE_CACHE_KEYSET |
Signature |
Una versión codificada en Base64 de la firma. | No aplicable |
Campos de firma opcionales
Si los parámetros de consulta están presentes, deben agruparse como los últimos parámetros en la URL. A menos que se especifique lo contrario, en los nombres de los parámetros y en sus valores, se distingue entre mayúsculas y minúsculas.
En la siguiente tabla, se explica el nombre y cada detalle de cada parámetro para los parámetros de firma opcionales:
Nombre del campo | Parámetros de firma | Valor con firma |
---|---|---|
HeaderName |
Un nombre de campo de encabezado de solicitud que debe estar presente en la solicitud. Debe estar en minúscula cuando se firma porque los nombres de campo de encabezado distinguen entre mayúsculas y minúsculas. Media CDN reduce el encabezado antes de validar la firma. |
HeaderName=HEADER_NAME |
HeaderValue |
Un valor de campo de encabezado de solicitud con nombre que debe estar presente en la solicitud. Por lo general, es un ID de usuario o algún otro identificador opaco. Las solicitudes con HeaderValue , pero sin HeaderName , se rechazan.
|
HeaderValue=HEADER_VALUE |
IPRanges |
Una lista de hasta cinco direcciones IPv4 e IPv6 en formato CIDR para las que esta URL es válida en formato base64 seguro para la Web. Por ejemplo, para especificar los rangos de IP “192.6.13.13/32,193.5.64.135/32”, debes especificar Es posible que los IPRanges no sean útiles para incluir en las firmas cuando los clientes están en riesgo de migraciones de WAN o casos en los que la ruta de red al frontend de tu aplicación es diferente de la ruta de entrega.
Media CDN rechaza a los clientes con un código Los siguientes son 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 video. Si la dirección IP del cliente cambia después de que emites el acceso y el cliente intenta descargar un segmento de video en su búfer de reproducción, recibe un |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
Prefijo de URL base64 (seguro para URL) al que se otorga acceso. Especificar un URLPrefix te permite firmar un prefijo y adjuntar los mismos parámetros de consulta a varias URL dentro de tu generación de manifiesto o jugador.
El URLPrefix es obligatorio cuando se usa el formato de cookie firmada.
|
URLPrefix=BASE_64_URL_PREFIX |