Настройка рекомендуемого набора данных с контролем доступа
Учебные результаты
По окончании этого практического занятия вы сможете:
- создать новый набор данных с политикой данных 'рекомендуемый'
- добавить токен доступа к набору данных
- проверить, что доступ к набору данных невозможен без токена доступа
- добавить токен доступа в HTTP-заголовки для доступа к набору данных
Введение
Наборы данных, которые не считаются 'основными' в WMO, могут быть настроены с политикой контроля доступа. wis2box предоставляет механизм добавления токена доступа к набору данных, который не позволит пользователям скачивать данные, если они не предоставят токен доступа в HTTP-заголовках.
Подготовка
Убедитесь, что у вас есть доступ по SSH к вашей учебной VM и что ваш экземпляр wis2box работает.
Убедитесь, что вы подключены к брокеру MQTT вашего экземпляра wis2box с помощью MQTT Explorer. Вы можете использовать общедоступные учетные данные everyone/everyone
для подключения к брокеру.
Убедитесь, что у вас открыт веб-браузер с wis2box-webapp для вашего экземпляра, перейдя по адресу http://YOUR-HOST/wis2box-webapp
.
Создание нового набора данных с политикой данных 'рекомендуемый'
Перейдите на страницу 'редактор наборов данных' в wis2box-webapp и создайте новый набор данных. Выберите Data Type = 'weather/surface-weather-observations/synop'.
Для "Centre ID" используйте тот же, что и в предыдущих практических занятиях.
Нажмите 'CONTINUE To FORM', чтобы продолжить.
В редакторе наборов данных установите политику данных на 'рекомендуемый' (обратите внимание, что изменение политики данных обновит 'Иерархию тем'). Замените автоматически сгенерированный 'Local ID' на описательное имя для набора данных, например, 'recommended-data-with-access-control':
Продолжайте заполнять необходимые поля для Пространственных свойств и Контактной информации, и 'Проверьте форму' на наличие ошибок.
Наконец, отправьте набор данных, используя ранее созданный токен аутентификации, и проверьте, что новый набор данных создан в wis2box-webapp.
Проверьте MQTT-explorer, чтобы увидеть, что вы получили сообщение WIS2 Notification Message о новой записи метаданных обнаружения на тему origin/a/wis2/<your-centre-id>/metadata
.
Добавление токена доступа к набору данных
Войдите в контейнер wis2box-management,
cd ~/wis2box
python3 wis2box-ctl.py login
Из командной строки внутри контейнера вы можете защитить набор данных с помощью команды wis2box auth add-token
, используя флаг --metadata-id
для указания идентификатора метаданных набора данных и токен доступа в качестве аргумента.
Например, чтобы добавить токен доступа S3cr3tT0k3n
к набору данных с идентификатором метаданных urn:wmo:md:not-my-centre:core.surface-based-observations.synop
:
wis2box auth add-token --metadata-id urn:wmo:md:not-my-centre:reco.surface-based-observations.synop S3cr3tT0k3n
Выйдите из контейнера wis2box-management:
exit
Публикация некоторых данных в наборе данных
Скопируйте файл exercise-materials/access-control-exercises/aws-example.csv
в каталог, определенный WIS2BOX_HOST_DATADIR
в вашем wis2box.env
:
cp ~/exercise-materials/access-control-exercises/aws-example.csv ~/wis2box-data
Затем используйте WinSCP или редактор командной строки, чтобы отредактировать файл aws-example.csv
и обновить идентификаторы станций WIGOS во входных данных, чтобы они соответствовали станциям в вашем экземпляре wis2box.
Затем перейдите в редактор станций в wis2box-webapp. Для каждой станции, которую вы использовали в aws-example.csv
, обновите поле 'topic', чтобы оно соответствовало 'topic' набора данных, который вы создали в предыдущем упражнении.
Теперь эта станция будет ассоциирована с 2 темами, одна для 'основного' набора данных и одна для 'рекомендуемого' набора данных:
Вам нужно будет использовать ваш токен для collections/stations
, чтобы сохранить обновленные данные станции.
Затем войдите в контейнер wis2box-management:
cd ~/wis2box
python3 wis2box-ctl.py login
Из командной строки wis2box мы можем загрузить образец файла данных aws-example.csv
в определенный набор данных следующим образом:
wis2box data ingest -p /data/wis2box/aws-example.csv --metadata-id urn:wmo:md:not-my-centre:reco.surface-based-observations.synop
Убедитесь, что вы указали правильный идентификатор метаданных для вашего набора данных и проверьте, что вы получаете уведомления о данных WIS2 в MQTT Explorer, по теме origin/a/wis2/<your-centre-id>/data/recommended/surface-based-observations/synop
.
Проверьте каноническую ссылку в сообщении WIS2 Notification Message и скопируйте/вставьте ссылку в браузер, чтобы попытаться скачать данные.
Вы должны увидеть ошибку 403 Forbidden.
Добавление токена доступа в HTTP-заголовки для доступа к набору данных
Чтобы продемонстрировать, что токен доступа необходим для доступа к набору данных, мы воспроизведем ошибку, которую вы видели в браузере, используя функцию командной строки wget
.
Из командной строки в вашей учебной VM используйте команду wget
с канонической ссылкой, которую вы скопировали из сообщения WIS2 Notification Message.
wget <canonical-link>
Вы должны увидеть, что HTTP-запрос возвращается с 401 Unauthorized и данные не загружаются.
Теперь добавьте токен доступа в HTTP-заголовки для доступа к набору данных.
wget --header="Authorization: Bearer S3cr3tT0k3n" <canonical-link>
Теперь данные должны быть успешно загружены.
Заключение
Поздравляем!
На этом практическом занятии вы научились:
- создавать новый набор данных с политикой данных 'рекомендуемый'
- добавлять токен доступа к набору данных
- проверять, что доступ к набору данных невозможен без токена доступа
- добавлять токен доступа в HTTP-заголовки для доступа к набору данных