Учебники

15) Аутентификация с помощью Kerberos

В то время как авторизация смотрит на обеспечение клиентского доступа к системе, аутентификация проверяет, какой тип доступа клиент имеет в MongoDB, после того как они авторизованы в системе.

Существуют различные механизмы аутентификации, ниже приведены лишь некоторые из них.

Аутентификация MongoDB с использованием сертификатов x.509

Используйте сертификаты x.509 для аутентификации клиента. Сертификат – это в основном доверенная подпись между клиентом и сервером MongoDB.

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

Чтобы это работало, необходимо выполнить следующие шаги;

  1. Действительный сертификат необходимо приобрести у действующего стороннего органа и установить на сервере MongoDB.
  2. Сертификат клиента должен иметь следующие свойства (сертификатный центр (ЦС) должен выдавать сертификаты как для клиента, так и для сервера. Сертификаты клиента должны содержать следующие поля – keyUsage и extendedKeyUsage.
  3. Каждый пользователь, который подключается к серверу MongDB, должен иметь отдельный сертификат.

Аутентификация Mongodb с помощью Kerberos

Шаг 1) Настройте MongoDB с аутентификацией Kerberos в Windows – Kerberos – это механизм аутентификации, используемый в больших клиент-серверных средах.

Это очень безопасный механизм, в котором пароль разрешен только в том случае, если он зашифрован. Ну, у MongoDB есть средство для аутентификации в существующей системе на основе Kerberos.

Шаг 2) Запустите процесс сервера mongod.exe.

Шаг 3) Запустите клиентский процесс mongo.exe и подключитесь к серверу MongoDB.

Шаг 4) Добавьте пользователя в MongoDB, который в основном является основным именем Kerberos, в базу данных $ external. База данных $ external – это специальная база данных, которая сообщает MongoDB для аутентификации этого пользователя в системе Kerberos, а не в собственной внутренней системе.

Mongodb аутентификация с помощью Kerberos

use $external
db.createUser(
{
	user: "user1@example.NET",

	roles:[
	{
		role: "read" , db:"Marketing"}
		
	}
		  ]
}

Шаг 5) Запустите mongod.exe с поддержкой Kerberos, используя следующую команду

mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI

И тогда вы можете теперь подключиться с пользователем Kerberos и аутентификацией Kerberos к базе данных.

Резюме:

  • Существуют различные механизмы аутентификации для обеспечения большей безопасности в базах данных. Одним из примеров является использование сертификатов для аутентификации пользователей вместо использования имен пользователей и паролей.