Как войти любым пользователем в активную директорию (без пароля) - PullRequest
0 голосов
/ 14 ноября 2018

Моя главная цель - создать бэкдор-вход для любого пользователя с правами администратора.

Я использую основной API и аутентификацию Active Directory и использую LDAP.

services.AddLdap(Configuration);
app.UseLdapAuthentication(Configuration);

Работает правильно.

Теперь мне нужно добавить возможность администратора для входа в систему любого пользователя. Конечно, админ не знает пароля.

Я подключаюсь

_connection.Connect(_config.Url, LdapConnection.DEFAULT_PORT);

И свяжи, где я должен знать пароль.

 _connection.Bind(username, password);

Я использую авторизацию на основе файлов cookie.

Я не могу найти способ сделать это.

1 Ответ

0 голосов
/ 14 ноября 2018

Я использую аутентификацию на основе файлов cookie.

Если вы используете проверку подлинности на основе файлов cookie, вам не нужно привлекать AD к своей олицетворению.

Я предполагаю, что так обычно работает ваша аутентификация:

  1. Пользователь вводит имя пользователя и пароль.
  2. Ваше приложение проверяет учетные данные через LDAP.
  3. Ваше приложение выдает cookie для пользователя.

Если вы хотите разрешить администратору выдавать себя за кого-либо другого в вашем приложении, то создайте страницу, где администратор может просматривать все учетные записи пользователей и выбирать учетную запись для олицетворения. Затем приложение просто создает файл cookie для этой учетной записи пользователя.

Так что это будет примерно так:

  1. Администратор вводит свое имя пользователя и пароль.
  2. Ваше приложение проверяет учетные данные через LDAP и подтверждает, что пользователь является администратором.
  3. Ваше приложение выдает файл cookie для собственной учетной записи пользователя.
  4. Администратор переходит на страницу «Пользователи» и выбирает учетную запись для олицетворения.
  5. Ваше приложение выдает новый файл cookie для выбранного пользователя.

Я сделал именно это в одном из наших приложений.

...