Доступ 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 
Другие вопросы по тегам