Para proteger os recursos do ApsaraVideo Live contra uso não autorizado, utilize a assinatura de URL, as listas de bloqueios e de permissões de IP e a autenticação remota. Esses métodos aumentam a segurança e melhoram a experiência do usuário em suas transmissões de vídeo ao vivo.
Visão geral
O controle de acesso para domínios de ingestão é fundamental para garantir a segurança dos seus recursos e evitar acessos não autorizados. Ele inclui os seguintes métodos:
Assinatura de URL: Supera as limitações da proteção contra hotlink baseada em Referer ao verificar a legitimidade de cada solicitação.
Lista de bloqueios e de permissões de IP: Restringe ou permite o acesso a partir de endereços IP específicos, possibilitando a identificação e a filtragem de visitantes.
Autenticação remota: Encaminha as solicitações do usuário para um servidor de autenticação designado para validação, oferecendo maior flexibilidade e segurança aprimorada.
Assinatura de URL
Introdução
A assinatura de URL funciona em conjunto com o seu servidor de negócios para fornecer um método seguro de proteção dos recursos de transmissão ao vivo. Fluxo de trabalho:
Seu servidor de negócios gera uma URL assinada que contém informações de autenticação.
O usuário final utiliza essa URL assinada para iniciar uma solicitação de ingestão de fluxo no ApsaraVideo Live.
Um nó de borda do ApsaraVideo Live decodifica e valida a assinatura da URL. Se for inválida, o sistema rejeita a solicitação.
Após o ApsaraVideo Live autenticar a URL da solicitação, caracteres especiais na URL (como = e +) são escapados.
Para obter mais informações sobre cenários aplicáveis, estrutura da URL assinada e princípios de funcionamento, consulte URLs de ingestão e streaming assinadas.
Procedimento
Faça login no console do ApsaraVideo Live.
No painel de navegação à esquerda, clique em Domain Names. A página Domain Management será exibida.
Localize o domínio de ingestão que deseja gerenciar e clique em Domain Settings na coluna Actions.
Escolha Streaming Management > Access Control.
-
Clique na aba URL Signing e depois em Modifique.
A seção de configuração de autenticação inclui o botão de alternância URL Signing, Authentication Type (por exemplo, Type A), Primary Key, Secondary Key e Validity Period (em minutos).
NotaA assinatura de URL é ativada por padrão ao adicionar um domínio. Para desativá-la pela primeira vez, reconheça o risco de uso não autorizado e assine o Liability Waiver Agreement.
Se a assinatura de URL estiver ativada, clique em Modifique para atualizar as configurações. Caso tenha desativado a assinatura de URL anteriormente, basta ativar o botão de alternância URL Signing para reconfigurá-la.
-
Configure os parâmetros de assinatura de URL e clique em OK.
Parâmetro
Descrição
Authentication Type
Os domínios de ingestão suportam apenas a assinatura Type A.
NotaTodos os erros de assinatura de URL retornam um erro 403. Se isso ocorrer, recalcule a assinatura.
Para diagnosticar a causa exata da falha, verifique o cabeçalho
X-Tengine-Errorna resposta HTTP:Erros de cálculo de MD5
Exemplo:
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760beErros de timestamp
Exemplo:
X-Tengine-Error:denied by req auth: expired timestamp=1439469547
Primary Key
Ao adicionar um domínio, o console gera aleatoriamente uma chave primária. Você também pode inserir uma chave primária personalizada.
Secondary Key
Insira uma senha de backup para a autenticação de URL.
NotaAs chaves primária e secundária possuem a mesma validade. A chave secundária é usada principalmente para uma rotação de chaves suave.
Se você atualizar a chave primária, todas as URLs assinadas com a chave primária antiga se tornarão inválidas. Para evitar interrupções, copie a chave primária antiga para o campo da chave secundária, garantindo que ela continue funcionando durante a transição.
Validity Period
O período de validade define por quanto tempo a URL assinada permanece válida para iniciar a ingestão ou a reprodução. A ingestão e a reprodução ao vivo utilizam conexões de longa duração. Uma vez iniciadas dentro do período de validade, essas sessões continuam mesmo após a expiração. No entanto, novas solicitações de ingestão ou reprodução falharão se a URL tiver expirado.
O período de validade padrão para um domínio recém-adicionado é de 1 dia (1440 minutos). Você pode personalizar esse valor em minutos.
Lista de bloqueios e de permissões de IP
Introdução
Lista de bloqueios de IP: O sistema nega acesso ao domínio acelerado aos endereços IP adicionados a esta lista.
Lista de permissões de IP: Apenas os endereços IP adicionados a esta lista têm permissão para acessar o domínio acelerado.
-
Tanto a lista de bloqueios quanto a de permissões suportam endereços IPv6, seguindo as regras de formatação abaixo:
Quaisquer letras hexadecimais no endereço IPv6 devem estar em maiúsculas, como em
2001:DB8:0:23:8:800:200C:417A.Formatos abreviados de IPv6 usando dois pontos duplos (
::) não são suportados, como em2001:0DB8::0008:0800:200C:417A.
Ambas as listas suportam blocos CIDR. Por exemplo,
192.168.0.0/24.
Procedimento
Faça login no console do ApsaraVideo Live.
No painel de navegação à esquerda, clique em Domain Names. A página Domain Management será exibida.
Localize o domínio de ingestão que deseja gerenciar e clique em Domain Settings na coluna Actions.
Escolha Streaming Management > Access Control.
Clique na aba IP Blacklist or Whitelist e ative o recurso.
-
Defina o List Type e a Rule, e então clique em OK.
As listas de bloqueios e de permissões são mutuamente exclusivas; apenas uma pode estar ativa por vez. É possível configurar no máximo 1.000 endereços IPv6 ou 3.000 endereços IPv4. Separe as entradas com quebras de linha, sem duplicatas. A notação CIDR é suportada (por exemplo,
127.0.0.0/24). Os endereços IPv6 não diferenciam maiúsculas de minúsculas e não suportam o formato abreviado::.Tipo
Descrição
IP Blacklist
O sistema nega acesso ao domínio acelerado aos endereços IP adicionados a esta lista.
Whitelist
Apenas os endereços IP adicionados a esta lista têm permissão para acessar o domínio acelerado.
Autenticação remota
Introdução
Tanto a autenticação remota quanto a assinatura de URL protegem os recursos de transmissão ao vivo garantindo que apenas usuários autorizados possam acessá-los. Elas diferem na implementação:
Assinatura de URL: Você fornece as regras de autenticação ao centro de transmissão ao vivo, que gerencia todo o processo de autenticação.
Autenticação remota: Você mantém seu próprio servidor de autenticação. Quando o centro de transmissão ao vivo recebe uma solicitação de usuário, ele a encaminha ao seu servidor de autenticação para validação. Você é responsável por configurar e gerenciar esse servidor. A autenticação remota não suporta HTTP Live Streaming (HLS).
O fluxo de dados para autenticação remota é o seguinte:
Etapa | Descrição |
① | O usuário envia uma solicitação de acesso a recursos contendo parâmetros de autenticação para o centro de transmissão ao vivo. |
② | O centro de transmissão ao vivo recebe a solicitação e a encaminha diretamente (ou após aplicar regras especificadas) para o servidor de autenticação. |
③ | O servidor de autenticação avalia a solicitação usando os parâmetros fornecidos e retorna o resultado para o centro de transmissão ao vivo. |
④ | O centro de transmissão ao vivo executa uma ação com base no resultado da autenticação e retorna dados ao usuário.
|
Procedimento
Faça login no console do ApsaraVideo Live.
No painel de navegação à esquerda, clique em Domain Names. A página Domain Management será exibida.
Localize o domínio de ingestão que deseja gerenciar e clique em Domain Settings na coluna Actions.
Escolha Streaming Management > Access Control.
-
Clique na aba Remote Authentication, ative o botão de alternância e configure os parâmetros conforme solicitado.
NotaApós ativar a autenticação remota, todas as solicitações de usuário serão encaminhadas ao seu servidor de autenticação. Em cenários de alto tráfego, garanta que seu servidor consiga lidar com a carga e manter um bom desempenho.
Parâmetro
Descrição
Authentication Server Address
O endereço publicamente acessível do seu servidor de autenticação. O sistema valida o formato e o valor do endereço inserido. É possível usar uma URL fixa ou uma URL baseada em variáveis.
URL fixa: Suporta HTTP(S). Os valores não devem incluir 127.0.0.1 ou localhost, pois são inválidos. Exemplos:
http(s)://example.aliyundoc.com/auth
http(s)://192.0.2.1/auth
URL baseada em variáveis: Construa a URL de autenticação usando variáveis. Para detalhes, consulte URLs Baseadas em Variáveis.
Request Method
Especifica o método de solicitação HTTP que o centro de transmissão ao vivo usa para enviar solicitações de autenticação ao seu servidor de autenticação. Valores válidos: GET e POST.
Pass Through URL Parameters
Controla quais parâmetros da URL de solicitação do usuário são usados para autenticação. Escolha Specified Parameters Passed, Specified Parameters Not Passed ou None.
NotaSe você selecionar Specified Parameters Passed ou Specified Parameters Not Passed, insira os nomes dos parâmetros no campo abaixo, separados por vírgulas (,). Exemplo:
key1,key2,key3.HTTP Status Code to Return
O código de status HTTP que seu servidor de autenticação retorna ao centro de transmissão ao vivo após uma autenticação bem-sucedida. Escolha uma das opções a seguir:
Successful Authentication: Após selecionar esta opção, insira um código de status de sucesso personalizado. O centro de transmissão ao vivo permite a solicitação apenas se o seu servidor retornar exatamente este código. Todos os outros códigos resultam em rejeição.
Exemplo: Defina o código de status de sucesso como 200. Se o seu servidor retornar 200, a autenticação será bem-sucedida.
Failed Authentication: Após selecionar esta opção, insira um código de status de falha personalizado. O centro de transmissão ao vivo bloqueia a solicitação apenas se o seu servidor retornar exatamente este código. Todos os outros códigos resultam em aprovação.
Exemplo: Defina o código de status de falha como 403. Se o seu servidor retornar 403, a autenticação falhará.
Authentication Duration (s)
Este parâmetro mede o tempo desde o envio da solicitação de autenticação pelo centro de transmissão ao vivo até o recebimento de uma resposta do seu servidor.
Insira um número inteiro de 0 a 30.
Retries on Timeout
Número de vezes que o centro de transmissão ao vivo tenta novamente acessar seu servidor de autenticação após um tempo limite. Quando as tentativas se esgotam, o centro de transmissão ao vivo executa a ação especificada em "Action After Timeout".
Action After Timeout
A ação que o centro de transmissão ao vivo executa quando a autenticação atinge o tempo limite. As ações suportadas são Allow e Deny:
Allow: Em caso de tempo limite, o centro de transmissão ao vivo permite a solicitação do usuário.
Deny: Em caso de tempo limite, o centro de transmissão ao vivo rejeita a solicitação e retorna um código de status de falha (por exemplo, 403) para o usuário.
Asynchronous Authentication
Quando ativada, a reprodução começa sem aguardar o resultado da autenticação remota. Se a autenticação falhar posteriormente, a reprodução será interrompida. Isso evita o aumento do tempo até o primeiro quadro causado por atrasos na autenticação remota síncrona. Após alternar entre autenticação síncrona e assíncrona, faça testes para garantir que tudo funcione conforme o esperado.
-
Clique em OK para concluir a configuração.
Após configurar a autenticação remota, você pode modificá-la ou desativá-la na aba Remote Authentication.
Construir uma URL com variáveis
É possível construir a URL do servidor de autenticação usando variáveis, conforme descrito abaixo:
|
Tipo |
Descrição |
|
Variáveis Numéricas |
Variáveis numéricas como Por exemplo, se a URL de ingestão for |
|
Variáveis Alfabéticas |
Variáveis alfabéticas como Por exemplo, se a URL de ingestão for |
|
Variáveis Personalizadas |
Variáveis personalizadas começam com o prefixo |
|
Variáveis NGX |
Todas as variáveis Todos os valores referenciados são processados pela função de escape de URL |
|
Variável de Nome do Fluxo |
Você pode usar |
Se a URL de ingestão ou reprodução for rtmp://domain.aliyundoc.com/app/stream?token=***&name=xrc,
e o endereço do servidor de autenticação remota estiver configurado como http://auth.aliyundoc.com/?app=${udv_host}&streamname=${2}&appname=${1}&token=${arg_token},
então a URL de autenticação real se tornará http://auth.aliyundoc.com/?app=domain.aliyundoc.com&streamname=stream&appname=app&token=***.