#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
:
- MONGODB-CR — внутренний механизм ответа
MongoDB
на запрос. - сертификат x.509 (новый в версии 2.6).
- Kerberos (только включен
MongoDB Enterprise
). - Полномочия прокси-сервера 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 для аутентификации.