какое mongodb-соединение (администратор или пользователь) использует для взаимодействия с базой данных

#c# #.net #mongodb #mongodb-.net-driver

#c# #.net #mongodb #mongodb-.net-driver

Вопрос:

Я разрабатываю c #-webservice, который предоставит некоторые методы для взаимодействия клиента с mongodb.

Мой вопрос: должен ли я использовать

—> admin-user для чтения / записи из / в базу данных и самостоятельной авторизации или -> должен ли я создать соединение с текущим зарегистрированным пользователем и позволить mongodb позаботиться об авторизации пользователя?

Я спрашиваю, потому что для некоторых пользовательских действий мне нужно запросить пользовательскую базу данных (где только администратор имеет право на чтение / запись), прежде чем я смогу выполнить метод, в котором достаточно прав пользователя.

Тобиас

Комментарии:

1. Какую ОС вы используете? Какая у вас подписка на MongoDB?

2. Это веб-сервис c # в Windows. Возможно, однажды я перенесу его на linux (mono), но не в ближайшем будущем 😉

Ответ №1:

Короткий ответ: позаботьтесь о проверке подлинности самостоятельно внутри вашего приложения.

Ответ средней длины: это в основном основано на вашем мнении, и на этот вопрос вам нужно ответить независимо от вашего решения для базы данных.

Длинный ответ: существует 4 различных механизма аутентификации, поддерживаемых MongoDB :

  1. MONGODB-CR — внутренний механизм ответа MongoDB на запрос.
  2. сертификат x.509 (новый в версии 2.6).
  3. Kerberos (только включен MongoDB Enterprise ).
  4. Полномочия прокси-сервера LDAP (только включено MongoDB Enterprise for Linux ).

Я предполагаю, что вы запускаете Windows, которая использует Kerberos для аутентификации. Я также предполагаю, что у вас нет MongoDB Enterprise подписки, потому что она стоит в 3 раза дороже базовой подписки. Если эти предположения верны, вы не можете использовать аутентификацию Windows для пользователя, вошедшего в систему, для доступа к БД. Это означает, что вы должны самостоятельно обрабатывать аутентификацию.

Я рекомендую использовать сертификаты. Это довольно просто, если ваша среда поддерживает его, оно не специфично для и очень безопасно. MongoDB

Комментарии:

1. это просто частный c #-проект, который я всегда хотел разработать, и у меня никогда не было времени. Так что у меня пока нет подписки 😉 Я думаю, что мой вопрос был немного вводящим в заблуждение. Я всегда буду создавать пользователей внутри mongodb и не буду использовать Windows-Users или LDAP или что-то в этом роде. Я просто хотел знать, достаточно ли создать пользователей с некоторыми правами на чтение / запись и позволить mongodb обрабатывать авторизацию. Это означало бы, что я пропускаю все запросы от клиента в mongo … но я сделаю оба. Позаботьтесь об авторизации, и (запасной вариант) mongodb также блокирует ее.

2. @TobiasKoller Затем выберите самый короткий ответ. И используйте MONGODB-CR для аутентификации.