Перейти к содержанию

Настройка рекомендуемого набора данных с контролем доступа

Учебные результаты

По окончании этого практического занятия вы сможете:

  • создать новый набор данных с политикой данных 'рекомендуемый'
  • добавить токен доступа к набору данных
  • проверить, что доступ к набору данных невозможен без токена доступа
  • добавить токен доступа в 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'.

create-dataset-recommended

Для "Centre ID" используйте тот же, что и в предыдущих практических занятиях.

Нажмите 'CONTINUE To FORM', чтобы продолжить.

В редакторе наборов данных установите политику данных на 'рекомендуемый' (обратите внимание, что изменение политики данных обновит 'Иерархию тем'). Замените автоматически сгенерированный 'Local ID' на описательное имя для набора данных, например, 'recommended-data-with-access-control':

create-dataset-recommended

Продолжайте заполнять необходимые поля для Пространственных свойств и Контактной информации, и 'Проверьте форму' на наличие ошибок.

Наконец, отправьте набор данных, используя ранее созданный токен аутентификации, и проверьте, что новый набор данных создан в 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 темами, одна для 'основного' набора данных и одна для 'рекомендуемого' набора данных:

edit-stations-add-topics

Вам нужно будет использовать ваш токен для 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-заголовки для доступа к набору данных