Есть ли способ использовать интегрированную безопасность Linux для MongoDb?

У нас есть веб-приложение [C#](/tag5179), соединяющее MongoDb, развернутое на сервере Linux. Идея состоит в том, чтобы использовать отдельную учетную запись Linux для нашего веб-приложения для входа в систему и подключения к MongoDb. Насколько я понимаю из того, что я читал, MongoDb по умолчанию не поддерживает интегрированную безопасность, он должен иметь свою собственную пользовательскую базу данных с паролями и не выполнять роли тоже, верно? Если это так, я задаюсь вопросом, есть ли какая-либо отдельная сторонняя структура/инструмент или что-то, что помогает мне использовать желаемый подход?

Помимо этого, если вы знаете хорошую онлайн-статью о лучших практиках внедрения Security for Mongo в веб-приложениях, например, где и как хранить пользователей и зашифрованные пароли и т. Д., Пожалуйста, дайте мне ссылку.

* , пожалуйста, дайте мне ссылку.

Несколько месяцев назад я сделал некоторую документацию по безопасности для MongoDB, и ее можно найти  [здесь](http://docs.mongodb.org/manual/security) , это должно быть отправную точку.

* Как я понимаю из того, что я читал, MongoDb по умолчанию не поддерживает интегрированную защиту, он должен иметь собственную пользовательскую базу данных с паролями и не выполнять роли тоже, верно?

До тех пор пока MongoDB 2.2, аутентификация и авторизация не являются локальными. В 2.2 существует ограниченный RBAC (Role Based Access), то есть две роли: «читать» и «писать», причем «писать» можно делать все в этой базе данных, т. Е. админ.

Все изменится в 2.4 с новыми ролями:

```
name            description of privilege

read            ability to query data in any collection in the database, other than 'system.users', and also ability to run any command without an A or W attribute

readWrite       everything permitted by 'read' privilege, and also the ability to insert, update,
or remove documents or indexes in any collection other than 'system.users', and also the ability to run any command without an A attribute

userAdmin       ability to read and write the 'system.users' collection

dbAdmin         ability to run admin commands affecting a single database; see list below

serverAdmin     ability to run admin commands affecting the entire database server; Can only be set on admin database; see discussion

clusterAdmin    admin commands for a cluster of shards or a replica set; Can only be set on admin database

```

как описано  [здесь](https://jira.mongodb.org/browse/SERVER-3198) . Этот расширенный RBAC будет доступен во всех версиях MongoDB с версии 2.3.2 (сборка разработки) и следующей версии выпуска, 2.4.0.

С MongoDB 2.4 также будет возможность использовать Kerberos для аутентификации, однако эта делегированная аутентификация будет доступна только в сборках Enterprise, для чего нам нужен контракт на коммерческую поддержку.

В настоящее время в MongoDB нет ничего, что обеспечивало бы сложность паролей, но, очевидно, в 2.4 с Kerberos, KDC может это сделать. Вам будет необходимо вручную (посредством вашей внутренней политики паролей и т. Д.), Чтобы пользователи понимали проблемы использования не сложных паролей и повторного использования одних и тех же паролей на нескольких устройствах. Предполагая, что вы используете 2.2, все логины, пароли и разрешения для доступа MongoDB хранятся в коллекции system.users под каждой базой данных.  [Здесь](http://docs.mongodb.org/manual/tutorial/control-access-to-mongodb-with-authentication/)  - это точная ссылка на документацию что вы должны прочитать.