Pular para o conteúdo

HTTP Auth: Backend

A autorização por backend permite usar o seu sistema de gerenciamento de usuários já existente (Middleware) para controlar o acesso aos seus streams. Em vez de gerenciar usuários no Astra, você pode conectar a plataforma que já usa, como Ministra, IPTVportal ou um sistema próprio.

HTTP Backend

  1. O usuário solicita um canal: o player do espectador envia uma requisição com o token ou as credenciais dele
  2. O Astra pergunta ao seu Middleware: o Astra encaminha os detalhes da requisição ao seu sistema de gerenciamento de usuários
  3. O Middleware verifica as permissões: o seu sistema confere se o usuário pode acessar aquele canal
  4. Acesso liberado ou negado: se aprovado, o Astra transmite o conteúdo; se não, o acesso é bloqueado

Vá em SettingsHTTP Auth no Astra. Escolha o “Backend Type” e informe o “Backend Address” do seu sistema.

Backend Address:

http://example.com/stalker_portal

No painel de administração do Ministra/Stalker, ative Temporary URLFlussonic support

Para a plataforma em nuvem:

https://go.iptvportal.cloud

Para instalação local: use o endereço do seu servidor (por exemplo, http://your-server.com)

Nas configurações do portal, abra o menu Keys e crie uma nova chave:

  • Name: Astra
  • Algorithm: ARESSTREAM
  • Mode: SM
  • Key Length: 1472 bit
  • Update Rate: 1:00:00

Nas configurações de canal do portal:

  • Auth: arescrypt
  • Encoded: ative
  • Key: Astra

Backend Address:

http://example.com

Crie o seu próprio sistema de autenticação selecionando HTTP Request como Backend Type e informando a URL do seu endpoint.

Quando um usuário pede acesso, o Astra envia uma requisição GET ao seu endpoint com:

  • Parâmetros de consulta: todos os parâmetros da requisição original do usuário
  • Cabeçalhos HTTP com os detalhes da sessão:
    • X-Session-ID: número único da sessão
    • X-Channel-ID: identificador único do canal
    • X-Real-IP: endereço IP do cliente
    • X-Real-Path: caminho da requisição do cliente
    • X-Real-UA: User-Agent do cliente
    • X-Real-Host: Host da requisição do cliente

O seu backend pode responder com:

  • HTTP 200: acesso liberado
  • HTTP 403/401: acesso negado
  • Cabeçalho X-Session-Name - nome de login do usuário (opcional)

Exemplo de fluxo:

  1. Seu backend: https://auth.example.com/check
  2. O usuário solicita: https://live.example.com/play/a001/index.m3u8?token=123
  3. O Astra chama: https://auth.example.com/check?token=123
  4. Os cabeçalhos incluem: X-Real-Path: /play/a001/index.m3u8 e outros detalhes da requisição

Se o seu backend estiver inacessível, o Astra libera o acesso por padrão. Isso evita que o seu serviço saia do ar caso o servidor de autenticação tenha problemas, mas significa que os usuários ganham acesso livre durante as falhas.

Se os usuários conseguem assistir aos canais sem pagar, o seu backend pode estar fora do ar. Teste a conexão com o backend:

Terminal window
curl -v "https://auth.example.com/check"

Troque a URL pelo endereço real do seu backend, conforme as configurações do Astra.

Problemas comuns:

  • Connection refused: o servidor de backend está fora do ar
  • A requisição trava: problemas de conectividade de rede
  • URL errada: confira o endereço do backend nas configurações

Se usuários legítimos estão sendo bloqueados:

  1. Confira os logs do seu backend: procure por erros de autenticação
  2. Verifique os códigos de resposta: o seu backend precisa retornar HTTP 200 para usuários válidos
  3. Teste manualmente: use o curl com um token válido para testar o seu endpoint