Elasticsearch Shield Plugin - пользователи не могут проходить аутентификацию, даже пользователи с правами администратора

У меня проблема с плагином Shield для Elasticsearch. Я установил asticsearch, чтобы он работал как служба, и я вижу, что он работает на порту 9200.

Если я войду curl http://localhost:9200 в моем терминале Mac я получаю правильный вывод упроса...

Недавно я пытался перейти от базовой аутентификации к щитовой аутентификации. Я установил щит и лицензию, используя следующие команды:

/usr/share/elasticsearch/bin/plugin install license/latest
/usr/share/elasticsearch/bin/plugin install shield/latest

Это успешно устанавливает щит и лицензионные плагины. Они содержатся в моей директории / usr / share /asticsearch / plugins на моей коробке Vagrant.

Итак, теперь, если я попытаюсь использовать curl -XGET http://localhost:9200 снова я получаю следующий ответ:

{"error": {"root_cause": [{"type": "security_exception", "reason": "отсутствует токен аутентификации для запроса REST [/]","header":{"WWW-Authenticate":"Основная область" =\"shield\""}}],"type":"security_exception","reason":" отсутствует токен аутентификации для запроса REST [/]","header":{"WWW-Authenticate":"Basic realm=\"щит \""}}," статус ":401}

Это хорошо. Я не могу достичь эластичного поиска без надлежащей аутентификации. Итак, теперь я хочу создать пользователя для аутентификации на asticsearch. Я использую команду:

sudo ./esusers useradd testuser -p password -r admin

Это создает пользователя "testuser" с паролем "пароль" с правами администратора.

Я могу проверить, что этот пользователь был создан с помощью следующей команды:

sudo ./esusers list

Это возвращает:

testuser: admin

Итак, я теперь пытаюсь снова запустить команду curl с этим пользователем:

curl -u testuser:password -XGET http://localhost:9200

Но я получаю то же сообщение об ошибке, что и раньше, когда я пытался без администратора.

В чем здесь проблема? Почему мой админ не проходит аутентификацию?

1 ответ

Решение

Вы сказали, что ваш проверенный пользователь создан с помощью sudo ./esusers list но команда curl не работает. Скорее всего, вы используете пользовательский каталог для asticsearch, хотя домашний каталог /usr/share/elasticsearch, И благодаря этому esusers создает пользователей в /etc/elasticsearch/shield/ каталог, но они должны быть скопированы в пользовательский каталог, если вы его используете.

Я знаю, что вы решили это по-другому, но я отвечаю на это в надежде, что это поможет кому-то еще в будущем. Можете ли вы подтвердить, что пользовательский каталог? Например, в моем случае, пользовательский каталог был /data/elasticsearch и дом реж /usr/share/elasticsearch

Другие вопросы по тегам