Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Описание

CDN 2.2 реализует следующие дополнительные возможности по сравнению с CDN 2.0 и 2.1:

  • управление доступом к потокам внутри CDN

Управление доступом к потокам в CDN

CDN 2.2 позволяет ограничивать доступ к определенным потокам в CDN для подписчиков. Доступ защищается ключами, организованными в списки контроля доступа (ACL) для каждого потока. Подписчик может запросить поток для воспроизведения, только указав правильный ключ. Ключ указывается при помощи специального параметра, передаваемого при установке соединения с сервером.

Новый поток публикуется на Origin сервере как доступный всем подписчикам по умолчанию. Назначение ключей и дальнейшее управление списками контроля доступа к потоку производится на Origin сервере при помощи REST API.

Любые изменения в ACL потока немедленно рассылаются всем серверам в CDN, и при получении применяются сервером. Таким образом, если ключ подписчика больше не входит в ACL потока, воспроизведение для этого подписчика будет остановлено с признаком ошибки Restricted access.

После остановки и повторной публикации потока с таким же именем, он создается с чистым ACL, т.е. доступным всем подписчикам.

Настройка

Для того, чтобы указать наименование параметра, при помощи которого подписчики будут передавать ключи доступа, необходимо установить следующий параметр в файле flashphoner.properties на всех серверах одной CDN

client_acl_property_name=aclAuth

В данном случае параметр будет называться aclAuth

Чтобы удостовериться, что значения ключей не могут быть перехвачены, рекомендуется переключить CDN на использование SSL при помощи параметра

wcs_agent_ssl=true

Управление списками контроля доступа к потоку при помощи REST API

Для управления ключами доступа к потоку на Origin сервере используется REST API

REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:

  • HTTP: http://test.flashphoner.com:8081/rest-api/cdn/stream/access_list/add
  • HTTPS: https://test.flashphoner.com:8444/rest-api/cdn/stream/access_list/add

Здесь:

  • test.flashphoner.com - адрес WCS-сервера
  • 8081 - стандартный REST / HTTP порт WCS-сервера
  • 8444 - стандартный HTTPS порт
  • rest-api - обязательная часть URL
  • /rest-api/cdn/stream/access_list/add - используемый REST-метод

REST-методы и статусы ответа

REST-метод

Пример тела REST-запроса

Пример тела REST-ответа

Статусы ответа

Описание

/cdn/stream/access_list/add

{
 "name":"test",
 "keys":["key1","key2","key3"]
}



200 – OK

400 - Bad request

404 - Stream not found

500 – Internal Server Error

Добавить ключи в список контроля доступа к потоку

/cdn/stream/access_list/remove
{
 "name":"test",
 "keys":["key1"]
}

200 – OK

400 - Bad request

404 - Stream not found

500 – Internal Server Error

Удалить ключи из списка контроля доступа к потоку

/cdn/stream/access_list/delete
{
 "name":"test"
}

200 – OK

400 - Bad request

404 - Stream not found

500 – Internal Server Error

Очистить список контроля доступа к потоку

/cdn/stream/access_list/print
{
 "name":"test"
}
[
    "key1"
]

200 – OK

404 - ACL not found

500 – Internal Server Error

Показать список контроля доступа к потоку

Параметры

Имя параметра

Описание

Пример

name

Имя потока в CDN

test
keysСписок ключей доступа к потоку
["key1","key2","key3"]

Доступ к потоку со стороны подписчика

При помощи WebSDK для воспроизведения по WebRTC

Для воспроизведения потока по WebRTC необходимо передать ключ доступа к нему как дополнительный параметр в функцию createSession

    Flashphoner.createSession({urlServer: "wss://test.flashphoner.com:8443", custom: {aclAuth: "key1"}}).on(SESSION_STATUS.ESTABLISHED, function(session){
        ...
    });

Имя параметра должно соответствовать заданному в настройке, в данном случае aclAuth

Передача ключа доступа в параметрах соединения при воспроизведении по RTMP

Для воспроизведения потока в плеере по RTMP необходимо передать ключ доступа в параметрах соединения

rtmp://edge1.flashphoner.com:1935/live?aclAuth=key1/test

Здесь

  • edge1.flashphoner.com - имя сервера
  • aclAuth - имя параметра, как указано в настройке
  • test - имя потока

Обратная совместимость

CDN 2.2 обратно совместима с CDN 2.0 и 2.1, при этом могут воспроизводиться только потоки с чистыми ACL (вновь опубликованные).

  • No labels