В то время как авторизация направлена на обеспечение доступа клиента к системе, проверка подлинности проверяет, какой тип доступа имеет клиент в MongoDB после того, как он был авторизован в системе.
Существуют различные механизмы аутентификации, ниже приведены лишь некоторые из них.
Аутентификация MongoDB с использованием сертификатов x.509
Используйте сертификаты x.509 для аутентификации клиента. Сертификат - это, по сути, доверенная подпись между клиентом и сервером MongoDB.
Таким образом, вместо ввода имени пользователя и пароля для подключения к серверу между клиентом и сервером MongoDB передается сертификат. У клиента в основном будет сертификат клиента, который будет передан серверу для аутентификации на сервере. Каждый сертификат клиента соответствует одному пользователю MongoDB. Таким образом, каждый пользователь из MongoDB должен иметь свой собственный сертификат для аутентификации на сервере MongoDB.
Чтобы убедиться, что это работает, необходимо выполнить следующие шаги;
- Действительный сертификат необходимо купить у действующего стороннего центра и установить его на сервере MongoDB.
- Сертификат клиента должен иметь следующие свойства (один центр сертификации (ЦС) должен выдавать сертификаты и для клиента, и для сервера. Сертификаты клиента должны содержать следующие поля - keyUsage и extendedKeyUsage.
- Каждый пользователь, который подключается к серверу MongDB, должен иметь отдельный сертификат.
Аутентификация Mongodb с помощью Kerberos
Шаг 1) Настройте MongoDB с аутентификацией Kerberos в Windows. Kerberos - это механизм аутентификации, используемый в больших средах клиент-сервер.
Это очень безопасный механизм, в котором пароль разрешен только в том случае, если он зашифрован. Что ж, MongoDB имеет возможность аутентифицироваться в существующей системе на основе Kerberos.
Шаг 2) Запустите серверный процесс mongod.exe.
Шаг 3) Запустите клиентский процесс mongo.exe и подключитесь к серверу MongoDB.
Шаг 4) Добавьте пользователя в MongoDB, который, по сути, является основным именем Kerberos, во внешнюю базу данных $ external. $ External database - это специальная база данных, которая сообщает MongoDB аутентифицировать этого пользователя в системе Kerberos, а не в собственной внутренней системе.
use $externaldb.createUser({user: "This email address is being protected from spambots. You need JavaScript enabled to view it.",roles:[{role: "read" , db:"Marketing"}}]}
Шаг 5) Запустите mongod.exe с поддержкой Kerberos, используя следующую команду
mongod.exe -auth -setParameter authenticationMechanisms=GSSAPI
Затем вы можете подключиться к базе данных с помощью пользователя Kerberos и проверки подлинности Kerberos.
Резюме:
- Существуют различные механизмы аутентификации для обеспечения большей безопасности в базах данных. Одним из примеров является использование сертификатов для аутентификации пользователей вместо использования имен пользователей и паролей.