Сохранение данных POST :: ForgeRock Identity Gateway
Было ли это полезно?
DataPreservationFilter запускает сохранение данных POST когда клиент, не прошедший проверку подлинности, отправляет данные формы HTML в защищенный ресурс.
При срабатывании перенаправления аутентификации фильтр сохраняет данные в HTTP-сеанс и перенаправляет клиента для аутентификации. После аутентификации фильтр генерирует пустую самоотправку form POST для эмуляции оригинального POST. Затем он воспроизводит сохраненные данные в запрос перед передачей его по цепочке.
Данные могут быть любым содержимым POST, например данными формы HTML или загруженным файлом.
Учитывайте следующие моменты для сохранения данных POST:
Размер данных POST важен, поскольку данные хранятся в HTTP сессия.
Сеансы без сохранения состояния имеют максимальный размер файла cookie 4 КБ и представляют дополнительное ограничение на размер данных POST, даже если JWT сеанса сжат.
Закрепленные сеансы могут потребоваться для развертываний с сеансами с отслеживанием состояния и несколько экземпляров IG.
На следующем изображении показан упрощенный поток данных для сохранения данных POST:
1. Клиент, не прошедший проверку подлинности, запрашивает POST для защищенного ресурса.
2. DataPreservationFilter помечает запрос уникальным идентификатор и передает его по цепочке. Следующим фильтром должен быть фильтр проверки подлинности, такой как SingleSignOnFilter.
3. Следующий фильтр запускает аутентификацию и включает URL-адрес перехода помечены уникальным идентификатором из предыдущего шага.
4-5. DataPreservationFilter сохраняет данные POST в HTTP сеанс и перенаправляет запрос на аутентификацию. Данные POST определяется уникальным идентификатором.
6-7. Клиент аутентифицируется с помощью AM, и AM предоставляет ответ проверки подлинности на URL-адрес перехода.
8. Аутентифицированный клиент отправляет запрос GET, содержащий уникальный идентификатор.
9-10. DataPreservationFilter проверяет уникальный идентификатор и генерирует ответ формы самопубликации для клиента.
Наличие уникального идентификатора в URL-адресе перехода гарантирует, что запросы в URL-адрес может быть индивидуально идентифицирован. Кроме того, сложнее похитить пользовательские данные, потому что мало шансов угадать код внутри окно входа.
Если идентификатор не подтвержден, IG отклоняет запрос.
11. Клиент повторно отправляет запрос POST, включая идентификатор.
12-13. DataPreservationFilter обновляет запрос с помощью POST данные и отправляет их по цепочке.
Настройте AM и IG, как описано в разделе Аутентификация, и проверить пример. Этот пример расширяет этот пример.
Замените
cdsso.json
следующим маршрутом:Линукс
Windows
$HOME/. /home/cdsso')}", "куча": [ { "имя": "SystemAndEnvSecretStore-1", "type": "Системандэнвсекретсторе" }, { "имя": "АмСервис-1", "тип": "АмСервис", "конфигурация": { "url": "http://am.example.com:8088/openam", "область": "/", "агент": { "имя пользователя": "ig_agent_cdsso", "passwordSecretId": "agent.secret.id" }, "secretsProvider": "SystemAndEnvSecretStore-1", "сеансовый кэш": { «включено»: ложь } } } ], "обработчик": { "тип": "Цепь", "конфигурация": { "фильтры": [ { "name": "Фильтр сохранения данных", "type": "Фильтр сохранения данных" }, { "name": "CrossDomainSingleSignOnFilter-1", "type": "Кроссдоменный одиночный знаконфильтр", "конфигурация": { "redirectEndpoint": "/home/cdsso/перенаправление", "authCookie": { "путь": "/ домой", "name": "ig-токен-куки" }, "амСервис": "АмСервис-1", "verificationSecretId": "проверить", "секретспровайдер": { "тип": "JwkSetSecretStore", "конфигурация": { "jwkUrl": "http://am.
Информация о запросе
Метод запроса: #{request.method}URI запроса: #{ request.uri}
Строка запроса: #{request.queryParams}
Форма:
#{request.entity.form}Длина содержимого: #{request.headers['Content-Length'] [0]}
Тип контента: #{request.headers['Content-Type'][0]}
" } } } } }Обратите внимание на следующие отличия от
cdsso.json
:DataPreservationFilter расположен перед CrossDomainSingleSignOnFilter для управления сохранением данных POST до аутентификация.
ReverseProxyHandler заменяется StaticResponseHandler, который отображает данные POST, указанные в запросе.
Добавьте следующий маршрут в IG:
Линукс
Windows
$HOME/.openig/config/routes/form.json
appdata \OpenIG\config\routes\pdp.json
{ "условие": "${request.uri.path == '/form'}", "обработчик": { "тип": "Статикреспондерхандлер", "конфигурация": { "статус": 200, "заголовки": { "Тип контента": ["текст/html"] }, "entity": "
" } } }Тестовая страница: сохранение данных POST, содержащее видимые и скрытые элементы формы
Обратите внимание на следующие особенности маршрута:
Маршрут соответствует запросам на
/home/form
.StaticResponseHandler включает следующий объект для представления видимых и скрытые элементы формы из исходного запроса:
<тело>
Тестовая страница: сохранение данных POST, содержащее видимые и скрытые элементы формы
<форма enctype='application/x-www-form-urlencoded' имя = 'test_form' action='/home/cdsso/pdp.info?foo=bar&baz=pdp' метод = 'сообщение'> <ввод имя = 'электронная почта' значение = '[email protected]' размер = '60'> <ввод тип = 'скрытый' имя='телефон' значение='555-123-456'/>
Проверить установку:
Если вы вошли в AM, выйдите из системы и очистите все файлы cookie.
Перейдите на страницу https://ig.ext.com:8443/form.
Если вы видите предупреждения о том, что сайт небезопасен, ответьте на предупреждения, чтобы получить доступ к сайту.
Сценарий в объекте StaticResponseHandler
form.json
создает кнопку для демонстрации отправки формы.Нажмите кнопку и войдите в AM как пользователь
демо
, парольЧ5нг31т
.После аутентификации сценарий представляет данные POST из исходного запрос.
Настройка запрограммированного в iChart iSIC-V2 для отправки данных непосредственно в WQData LIVE предназначен для передачи данных непосредственно в облачный центр обработки данных WQData LIVE. Для систем, интегрирующих аналоговые датчики или датчики общего типа (где процесс автоматического обнаружения датчика по умолчанию невозможен), необходимо сначала запрограммировать регистраторы данных с помощью программного обеспечения iChart.
9
Программирование с помощью iChart
- Подсоедините последовательный кабель к разъему DB9 на передней панели iSIC-V2.
Подключить DB9Последовательный кабель к iSIC-V2
- Подайте внешнее питание 5–12 В постоянного тока через 6-контактный порт в нижней части регистратора.
Применить внешнее питание — при включении питания будет звучать зуммер.
- Запустите программное обеспечение iChart, выберите параметр «Открыть без проекта».
Выберите опцию «Открыть без проекта».
- Перейдите к Файл|Новый проект в главном меню iChart, укажите имя для нового файла проекта и следуйте инструкциям мастера настройки устройства.
Имя нового файла проекта iChart.
- Шаг 1 — Добавьте общий сайт в проект.
Добавить сайт в новый проект iChart.
- Шаг 2 . Выберите параметр регистратора данных iSIC под полем производителя NexSens и нажмите Добавить , чтобы поместить его под сайт, созданный на предыдущем шаге.
- НЕ выбирайте в меню тип регистратора iSIC-V2. Используйте только стандартную опцию iSIC.
Добавьте регистратор данных iSIC на сайт, присвоив ему имя, если хотите.
- В появившемся меню связи выберите COM-порт, связанный с последовательным кабелем RS232 DB9, и убедитесь, что проверка соединения прошла успешно. Затем нажмите Закрыть и OK .
Выберите соответствующий COM-порт для USB-кабеля, затем нажмите кнопку «Проверить соединение».
Тест соединения пройден.
- НЕ выбирайте в меню тип регистратора iSIC-V2. Используйте только стандартную опцию iSIC.
- Шаг 3 — Выберите NexSens из списка производителей датчиков, выберите датчик iSIC Battery и добавьте параметр. Это важно для диагностических целей.
Добавьте датчик напряжения батареи iSIC для отслеживания питания системы.
В меню «Свойства датчика» для датчика батареи iSIC нажмите «ОК».
- Продолжайте добавлять датчики по отдельности, выполняя поиск по названию производителя, пока не будут назначены все подключенные датчики.
Все датчики добавлены в iSIC-V2.
- Продолжайте добавлять датчики по отдельности, выполняя поиск по названию производителя, пока не будут назначены все подключенные датчики.
- Шаг 4 — При необходимости добавьте управление вводом/выводом.
- Шаг 5 – Установите выборку датчика и интервал регистрации, необходимые для системы.
Укажите выборку датчика и частоту регистрации.
- Шаг 6 . Щелкните левой кнопкой мыши регистратор iSIC, чтобы выделить его, и выберите Program . Подтвердите, что вы хотите запрограммировать систему, и нажмите Finish после появления сообщения о завершении программирования.
Выберите регистратор и нажмите кнопку «Программировать iSIC».
Выберите «Да», когда появится приглашение программы.
Подтвердите сообщение о завершении программы и нажмите кнопку «Готово» в мастере настройки устройства.
- Шаг 1 — Добавьте общий сайт в проект.
- После завершения программирования iChart все добавленные системные параметры появятся на пустой диаграмме данных.
Программирование iChart завершено, вид на главный экран проекта.
Завершение настройки WQData LIVE
- Установите соединение в Tera Term.
- Отправьте команду syncrtc , чтобы установить для iSIC-V2 стандартное время UTC.
Отправка команды syncrtc через терминал.
- Отправьте команду
Отправьте команду «wqdata setup», чтобы синхронизировать программирование iChart системы с WQData LIVE.
- Убедитесь, что все параметры датчика теперь перечислены для регистратора в WQData LIVE.