Tous les produits
Search
Centre de documentation

ApsaraVideo Live:URL d'ingestion et de diffusion signées

Dernière mise à jour :Aug 19, 2026

Pour prévenir les téléchargements malveillants et le vol de ressources de votre site, configurez une liste noire ou une liste blanche de Referer afin d'identifier et de filtrer les visiteurs. Vous pouvez également utiliser des URL d'ingestion et de diffusion signées pour mieux protéger les ressources sur votre serveur d'origine. Cette rubrique explique le fonctionnement de la fonctionnalité de signature d'URL, sa configuration et les notes d'utilisation associées.

Composants d'une URL signée

Les URL signées conviennent aux ordinateurs, aux appareils mobiles et aux outils tiers d'ingestion et de lecture. Elles se composent de une URL d'ingestion ou de diffusion + un jeton d'accès. Voici un exemple :

rtmp://push.aliyundoc.com/app/stream?auth_key=1740562218-0-0-183e22e*********

Le paramètre auth_key correspond au Access Token.

Structure d'un jeton d'accès

timestamp-rand-uid-md5hash
  • timestamp : L'horodatage UNIX, exprimé en secondes. L'heure d'expiration finale est déterminée en ajoutant cette valeur à la période de validité de la signature d'URL du domaine.

    Si vous utilisez le générateur d'URL dans la console ApsaraVideo Live pour générer une URL signée, l'horodatage correspond à l'heure actuelle. Dans ce cas, la formule suivante s'applique : Heure d'expiration = Heure actuelle + Période de validité.

    Si vous construisez une URL signée en utilisant les règles de concaténation, vous pouvez spécifier l'horodatage. Par exemple, si vous définissez l'horodatage sur l'heure actuelle plus 3 600 secondes, la formule suivante s'applique : Heure d'expiration = Heure actuelle + 3 600 secondes + Période de validité. Si vous définissez l'horodatage sur l'heure actuelle, la formule suivante s'applique : Heure d'expiration = Heure actuelle + Période de validité.

  • rand : Un nombre aléatoire, généralement 0.

    Pour garantir l'unicité de chaque URL générée, utilisez un format UUID pour le nombre aléatoire. L'UUID ne doit pas contenir de traits d'union (-), par exemple : 477b3bbc253f467b8def6711128c7****.

  • uid : Un paramètre supplémentaire, non utilisé actuellement, généralement 0.

  • md5hash : La chaîne de vérification calculée à l'aide de l'algorithme MD5. Elle se compose d'une chaîne de 32 caractères constituée de chiffres (0-9) et de lettres minuscules anglaises (a-z).

    Contenu chiffré

    sstring = "URI-timestamp-rand-uid-PrivateKey" 
    md5hash = md5sum(sstring)

    Par exemple, si l'URL d'ingestion est rtmp://push.aliyundoc.com/app/stream, la chaîne à chiffrer est /app/stream-timestamp-rand-uid-Clé d'authentification du domaine.

Utilisation

Pour utiliser des URL signées, activez la fonctionnalité de signature d'URL pour votre nom de domaine. La signature d'URL est activée par défaut lorsque vous ajoutez un nom de domaine pour la première fois. Pour plus d'informations, consultez la rubrique Configurer la signature d'URL. Vous pouvez générer une URL signée dans la console ApsaraVideo Live ou en utilisant les règles de concaténation. Pour plus d'informations, consultez la rubrique Générer des URL d'ingestion et de diffusion.

Fonctionnement

Une fois la signature d'URL activée, le serveur vérifie une requête en effectuant les opérations suivantes :

  1. Le serveur vérifie si l'horodatage de la requête est antérieur à l'heure actuelle.

    • Si l'horodatage est antérieur à l'heure actuelle, le serveur considère que l'URL signée a expiré et renvoie le code d'état HTTP 403.

    • Si l'horodatage est postérieur à l'heure actuelle, le serveur construit une chaîne en utilisant la formule sstring suivante.

  2. Le serveur utilise l'algorithme MD5 pour calculer la valeur de hachage de la chaîne, puis compare cette valeur avec celle contenue dans la requête.

    • Si les deux valeurs sont identiques, l'authentification réussit. Le serveur renvoie le flux en direct.

    • Si les deux valeurs diffèrent, l'authentification échoue. Le serveur renvoie le code d'état HTTP 403.

La valeur HashValue est dérivée de la chaîne suivante :

sstring = "URI-timestamp-rand-uid-PrivateKey"
HashValue = md5sum(sstring)

Exemple

  • Hypothèses :

    1. Une requête est effectuée pour l'objet rtmp://demo.aliyundoc.com/video/standard**** en utilisant req_auth.

    2. Vous définissez la clé cryptographique sur aliyunliveexp1234, qui correspond à la clé primaire ou secondaire configurée dans la console ApsaraVideo Live.

    3. L'heure de génération de l'URL signée est 16:49:57 le 28 mai 2021 (UTC+8).

    4. Dans la console, la validity period de l'URL signée est définie sur 40 minutes.

    5. Vous définissez les champs rand et uid sur 0.

  • Résultat :

    1. L'horodatage UNIX calculé de l'URL signée est 1622194197, ce qui correspond à 17:29:57 le 28 mai 2021 (UTC+8).

    2. Le serveur construit une chaîne de signature utilisée pour calculer la valeur de hachage.

      /video/standard-1622194197-0-0-aliyunliveexp1234

    3. Le serveur calcule la valeur de hachage basée sur la chaîne de signature.

      HashValue = md5sum("/video/standard-1622194197-0-0-aliyunliveexp1234") = 5552ff52b5e4e20387c6dc18afce****

    4. L'URL de la requête est rtmp://demo.aliyundoc.com/video/standard****?auth_key=1622194197-0-0-5552ff52b5e4e20387c6dc18afce****

      Remarque

      Le champ auth_key indique le jeton d'accès inclus dans l'URL signée.

    5. La valeur HashValue calculée correspond à la valeur md5hash = 5552ff52b5e4e20387c6dc18afce**** de la requête de l'utilisateur. L'authentification réussit.

Notes d'utilisation

  • Par défaut, la signature d'URL est activée. Nous vous recommandons de conserver cette fonctionnalité activée pour empêcher le piratage de votre contenu. Si vous souhaitez désactiver la signature d'URL, assurez-vous de comprendre les risques liés à l'utilisation non autorisée de vos ressources et d'accepter la clause de non-responsabilité pour la désactivation de la signature d'URL sur la page URL Signing de la console ApsaraVideo Live.

  • Vous devez définir manuellement le champ auth_key. ApsaraVideo Live ne fournit aucune opération API pour calculer la valeur du champ auth_key.

  • Après avoir activé la signature d'URL, vous devez ajouter le champ auth_key aux URL d'ingestion et de diffusion. Sinon, les flux en direct ne peuvent pas être lus. Vous ne pouvez pas signer uniquement l'URL d'ingestion ou l'URL de diffusion. Vous devez les signer toutes les deux.

  • Les URL signées restent valides jusqu'à leur horodatage d'expiration. Vous pouvez accéder à une URL signée à tout moment avant son expiration. ApsaraVideo Live ne prend pas en charge les URL signées à usage unique.

  • La valeur du champ auth_key est la valeur MD5 de l'URI sans les champs queryString. Pour plus d'informations, consultez la section précédente concernant la définition des paramètres de signature d'URL. Les URI des URL d'ingestion et de diffusion sont AppName/StreamName. Si l'URL d'ingestion n'est pas confidentielle, nous vous recommandons de définir un horodatage d'expiration aussi proche que possible. Cela permet d'éviter les accès malveillants à l'URL de diffusion.

  • Pour les URL d'ingestion et de diffusion aux formats Real-Time Messaging Protocol (RTMP), FLV et Real-Time Streaming (RTS), les requêtes sont authentifiées uniquement au début de l'ingestion ou de la diffusion du flux. L'ingestion ou la diffusion en cours n'est pas interrompue si l'URL signée expire pendant le processus.

  • Pour les URL de diffusion au format M3U8, les requêtes sont authentifiées au début de la diffusion et pendant celle-ci. La diffusion en cours est interrompue si l'URL signée expire pendant le processus.

  • Si vous souhaitez contrôler dynamiquement la période de validité des URL signées, vous pouvez utiliser le SDK pertinent pour spécifier dynamiquement les paramètres AppName et StreamName. Pour plus d'informations, consultez la rubrique Exemple de code pour la signature d'URL.

  • Pour les appareils d'ingestion à IP fixe, tels que les caméras, dont la configuration ne peut pas être mise à jour à distance, une déconnexion du flux peut se produire si la période de validité de la signature expire. Nous vous recommandons d'équilibrer sécurité et disponibilité lors de la définition de la période de validité, ou d'utiliser une liste blanche d'IP d'ingestion au lieu de la signature d'URL.

  • Pour ApsaraVideo Real-Time Communication (ARTC), nous vous recommandons d'activer la signature d'URL lorsque vous utilisez ARTC en production pour éviter le vol de ressources et des coûts supplémentaires. Vous pouvez désactiver temporairement la signature d'URL uniquement pour les tests de lecture afin de garantir l'accessibilité de l'URL.

FAQ

Des frais de trafic élevés sont générés sans flux actifs ou après l'arrêt du service

Cause

Si l'authentification par URL est désactivée pour un nom de domaine, un hotlinking malveillant des URL d'ingestion et de diffusion peut se produire. Les attaquants peuvent extraire des flux en combinant le nom de domaine, AppName et StreamName. Cela entraîne une consommation élevée de trafic.

Solution

  1. Activez l'authentification par URL pour les domaines d'ingestion et de diffusion afin d'empêcher l'utilisation non autorisée de vos URL d'ingestion et de diffusion.

  2. Dans la console ApsaraVideo Live, désactivez et supprimez les noms de domaine qui ne sont plus utilisés. Déconnectez les flux actifs pour arrêter la consommation de trafic.

  3. Configurez la surveillance de la bande passante de pointe et des alertes pour détecter un trafic inhabituel.

Comment configurer les paramètres push_auth_key et pull_auth_key lorsque la signature d'URL n'est pas activée ?

Si la signature d'URL n'est pas activée pour votre domaine, les URL d'ingestion et de diffusion ne nécessitent pas de paramètres d'authentification. Dans votre code, laissez les paramètres push_auth_key et pull_auth_key vides ou ne les configurez pas. Le service fonctionne normalement sans ces paramètres.

Comment résoudre l'erreur $matches[4] manquante lors de l'utilisation de la démo PHP pour générer des jetons d'accès ?

Ne supprimez pas directement la ligne de code $args = $matches[4], car la logique ultérieure dépend de cette variable pour déterminer le symbole de concaténation (? ou &). La bonne approche consiste à conserver l'instruction d'affectation et à assigner $args à une chaîne vide lorsque $matches[4] n'existe pas. Cela garantit que le format du jeton d'accès est correct et évite les erreurs de syntaxe. Exemple :

$args = isset($matches[4]) ? $matches[4] : '';

L'activation ou la désactivation de la signature d'URL prend-elle effet immédiatement ? Dois-je redémarrer l'ingestion du flux ?

  1. L'activation ou la désactivation de la signature d'URL prend effet immédiatement. Aucun délai d'attente n'est requis.

  2. Si vous activez la signature d'URL et que la session d'ingestion actuelle n'est pas interrompue et que les paramètres AppName et StreamName restent inchangés, vous n'avez pas besoin de redémarrer l'ingestion du flux. Seules les URL d'ingestion et de diffusion nouvellement générées doivent inclure le paramètre d'authentification.

  3. Si l'activation de la signature d'URL affecte votre activité, vous pouvez la désactiver à tout moment sur la page URL Signing de la console ApsaraVideo Live. Après avoir désactivé la signature d'URL, l'accès normal au flux en direct reprend immédiatement.

Pourquoi de petits montants de frais de trafic sont-ils encore générés lorsqu'une erreur 403 est renvoyée après l'activation de la signature d'URL ?

Cause

Bien qu'une requête non autorisée soit bloquée et qu'une erreur HTTP 403 soit renvoyée, le nœud périphérique CDN doit toujours traiter la requête et interagir avec elle. Cela génère une petite quantité de frais de facturation basés sur les requêtes ou de trafic d'interaction des nœuds périphériques.

Solution et prévention

Nous vous recommandons d'activer la signature d'URL pour le domaine d'ingestion et le domaine de diffusion. Cela minimise les frais générés par les requêtes anormales à la source.