Moment Video Server
Внешняя авторизация

Авторизация клиентов производится с помощью модуля mod_auth. Для проверки прав доступа mod_auth делает HTTP-запросы к внешнему серверу, который выполняет роль сервера авторизации.

Если в теле ответа на запросы watch и stream - это строка OK, то доступ разрешён, иначе - запрещён. Пустые строки в конце ответа игнорируются. Если запрос завершился с ошибкой, то доступ запрещён. Если доступ запрещён, то соединение с RTMP-клиентом разрывается.

Пример настройки mod_auth:

mod_auth {
    enable     = y
    // Сервер, на который отправляются HTTP-запросы
    auth_host  = 1.2.3.4:8080
    // Адрес сервера moment или любой идентификатор,
    // чтобы различать moment-серверы в кластере
    this_host  = HOST
    // запрос проверки доступа для просмотра видеопотока
    watch_req  = "auth/watch?myparam=foobar"
    // запрос проверки доступа для вещания
    stream_req = "auth/stream"
    // уведомление об отключении
    disconnected_req = auth/disconnected
}

При такой настройке mod_auth делает следующие HTTP-запросы:

Просмотр:   http://1.2.3.4:8080/auth/watch?myparam=foobar&host=HOST&client=3.4.5.6&stream=StreamName&auth=foobar
Вещание:    http://1.2.3.4:8080/auth/stream?host=HOST&client=3.4.5.6&stream=StreamName&auth=foobar
Дисконнект: http://1.2.3.4:8080/auth/disconnected?host=HOST&auth=foobar

Значение параметра auth=... берётся из названия потока в методах play/publish. При этом название потока имеет вид streamname?auth=...

Если у подключенного клиента не прошла ни одна проверка доступа (в доступе отказано), то запроса disconnected при его отключении не будет.



К содержанию