Доступ Apache NIFI REST API (jwt) через шлюз Apache Knox
Я ищу ресурсы для настройки Apache KNOXTOKEN
сервис для доступа к Apache NIFI REST API.
у меня уже есть KNOXSSO
настроен, и могу получить доступ к интерфейсу NIFI через него. Однако я не смог найти ресурсы для безопасного доступа к сервисам NIFI REST через Curl и JWT.
Указатели оценены.
2 ответа
Незначительная подстройка к другому предложению здесь...
При интеграции с KnoxSSO, NiFi принимает токен Knox JWT в cookie. По умолчанию я считаю, что этот файл cookie называется hadoop-jwt
, Если вы пытаетесь получить доступ к NiFi Rest Api с помощью curl, я считаю, что вам нужно получить значение JWT от Knox (или, возможно, просмотрев cookie в ваших браузерах DevTools) и включить его в cookie в ваших запросах curl.
Если вы включите маркер Knox JWT в заголовок авторизации, проверка не будет выполнена. JWT, указанные в заголовке авторизации, должны быть токенами, сгенерированными / подписанными NiFi. Чтобы проверить токен, сгенерированный / подписанный Knox, NiFi следует соглашениям Knox.
Для других механизмов аутентификации, таких как SPNEGO или провайдеров идентификации, существуют конечные точки, такие как /access/token
или же /access/kerberos
где вы можете получить токен.
Я не думаю, что есть способ сделать это для Knox, поскольку он требует, чтобы рабочий процесс единого входа перенаправлял страницу входа в ваш браузер.
Сначала вам нужно будет пройти аутентификацию в интерфейсе NiFi через Knox SSO, а затем использовать что-то вроде инструментов Chrome Dev, чтобы просмотреть локальное хранилище браузера и найти маркер, который есть в интерфейсе NiFi для текущего пользователя.
Затем вы можете использовать этот токен для выполнения вызовов API, передав его в заголовке Bearer, например:
curl -k --header "Authorization: Bearer $token" https://<nifi-host>:<port>/nifi-api/flow/cluster/summary