Я разрабатываю aС# -webservice, который предоставит некоторые методы для взаимодействия клиента с mongodb.
Мой вопрос: следует ли использовать
→ admin-user для чтения/записи из/в базу данных и позаботиться о авторизации самостоятельно или → должен ли я создать соединение с текущим зарегистрированным пользователем и позволить mongodb позаботиться о авторизации пользователя?
Я спрашиваю, потому что для некоторых пользовательских действий мне нужно запросить пользовательскую базу данных (где только администратор имеет право читать/писать), прежде чем я смогу выполнить метод, где прав пользователя достаточно.
Тобиас
Короткий ответ: Соблюдайте аутентификацию самостоятельно в своем приложении.
Ответ на среднюю длину: Это в основном основано на вашем мнении, и это вопрос, на который вы должны ответить независимо от вашего решения базы данных.
Длительный ответ: Существует 4 разных механизма аутентификации, поддерживаемых MongoDB
:
MongoDB
внутреннего вызова-ответа.MongoDB Enterprise
).MongoDB Enterprise for Linux
LDAP (только для MongoDB Enterprise for Linux
). Я предполагаю, что вы запускаете окна, которые используют Kerberos для аутентификации. Я также предполагаю, что у вас нет подписки на MongoDB Enterprise
поскольку она составляет 3X базовой подписки. Если эти допущения верны, вы не можете использовать аутентификацию Windows вошедшего в систему пользователя для доступа к БД. Это означает, что вы должны самостоятельно обрабатывать аутентификацию.
Я рекомендую использовать сертификаты. Это довольно легко, если ваша среда поддерживает его, он не специфичен для MongoDB
, и он очень безопасен.