Доступ Apache NIFI REST API (jwt) через шлюз Apache Knox - PullRequest
0 голосов
/ 30 января 2019

Я ищу ресурсы для настройки службы Apache KNOXTOKEN для доступа к API-интерфейсу REST Apache NIFI.

Я уже настроил KNOXSSO и могу получить доступ к интерфейсу NIFI через него.Однако я не смог найти ресурсы для безопасного доступа к сервисам NIFI REST через Curl и JWT.

Указатели оценены.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Незначительная настройка другого предложения здесь ...

При интеграции с 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.

0 голосов
/ 30 января 2019

Для других механизмов аутентификации, таких как 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 
...