создание нового пользователя в couchdb 3 без пароля администратора - PullRequest
1 голос
/ 02 мая 2020

Я только что скачал и установил CouchDB v3.

При первом запуске мне предложили установить пароль администратора, который я сделал.

Для создаваемого веб-приложения Я хочу использовать функцию аутентификации пользователя CouchDB, поэтому я создал новую базу данных _users с помощью пользовательского интерфейса Fauxton.

После создания базы данных _users я вызвал REST API для вставки нового пользователь (этот пример кода взят из документации ):

$ curl -X PUT http://localhost:5984/_users/org.couchdb.user:jan \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'

Вместо ожидаемого ответа

{"ok":true,"id":"org.couchdb.user:jan","rev":..."}

Я получаю

{"error":"unauthorized","reason":"You are not authorized to access this db."}

При добавлении учетных данных администратора к вызову API он работает как ожидалось:

$ curl -X PUT http://admin:____@localhost:5984/_users/org.couchdb.user:jan \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'

{"ok":true,"id":"org.couchdb.user:jan","rev":"..."}

Мой вопрос:

Есть ли какие-либо настройки или разрешения, которые я могу установить, чтобы сделать запросить работу без необходимости добавления учетных данных администратора? (AFAIK это работало нормально в v2.x)

1 Ответ

2 голосов
/ 05 мая 2020

Вы упускаете удовольствие от старой доброй вечеринки администратора, которая на протяжении многих лет была настройкой по умолчанию для CouchDB, то есть она была установлена ​​с нулевой безопасностью, поскольку каждый фактически был администратором.

От дороги к CouchDB 3.0: Безопасность [1]

Одним из аспектов легкого начала работы был выбор эпохи 1.x, облегчающий использование. CouchDB: администратор вечеринки. Сторона администратора означает, что по умолчанию любой запрос к CouchDB выполнялся в контексте пользователя с правами администратора, т. Е. Вам разрешалось делать что угодно.

3.0 изменил все это, отключив администратора Вечеринка - какая куча шумных убийств!

Я подозреваю, что есть более сложные решения, но для тех, кто хочет устроить вечеринку на [2] , небольшие изменения в etc/local.ini и любые другие разрешения на _users будут удовлетворять.

Ключом является свойство конфигурации require_valid_user [3] .

В etc/local.ini, измените chttpd и couch_httpd_auth section

[chttpd]
require_valid_user = false

[couch_httpd_auth]
require_valid_user = false

Это все, что нужно , если не определены члены и / или роли, определенные для базы данных _users. Если они есть, они должны быть удалены (легко с Fauxton).

После очистки участников / ролей и изменения etc/local.ini перезапустите CouchDB, и вы сможете создавать пользователей без проблем. Время вечеринок! 10

Обязательно учтите последствия таких изменений.

Отказ от ответственности - я не рекомендую запускать CouchDB в любом контексте безопасности, напоминающем Admin Party!

1 Дорога к CouchDB 3.0: Безопасность 2 Вечеринка включена 3 require_valid_user

...