Перенаправить дайджест-запрос в активный каталог

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

У меня есть информация, указанная в заголовке http, например nonce и имя пользователя. Моя проблема сейчас в том, что у меня нет ссылки, чтобы поместить эту информацию в объект PrincipalContext.

Я, очевидно, не могу использовать PrincipalContext.ValidateCredentials(имя пользователя, пароль), потому что для этого требуется пароль в виде обычного текста.

Единственная проверка, которую я могу использовать, это UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, username);, но она не включает пароль.

У меня есть объект HttpListenerContext. Но пользовательская переменная равна нулю.


person Tim Hartnack    schedule 20.02.2013    source источник


Ответы (2)


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

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

using(PrincipalContext prContext= new PrincipalContext(ContextType.Domain, "Your Domain"))
{
    bool isValid = prContext.ValidateCredentials("Username", "Password");
}
person MethodMan    schedule 20.02.2013
comment
Меня не беспокоит раскрытие пароля. На самом деле я не знаю пароль. Мой клиент отправляет мой дайджест-запрос с копилкой одноразового номера md5. Мне нравится не декодировать этот md5, а сразу использовать эту строку для проверки в активном каталоге. - person Tim Hartnack; 20.02.2013
comment
ответ, который я предоставил, позволит вам проверить, но вы должны написать что-то, что расшифровывает md5. Я не верю, что AD поддерживает передачу или внедрение MD5 - person MethodMan; 20.02.2013
comment
Вы не можете легко расшифровать MD5. Вот почему он используется для расшифровки. - person Tim Hartnack; 20.02.2013
comment
Я прекрасно знаю об этом.. но это единственный код, который я могу придумать, чтобы сделать то, что вам нужно сделать.. также система, стоящая за DMZ..? если это так, то открытые пароли не должны быть проблемой, если они являются внутренними для компании в их внутренней сети. - person MethodMan; 20.02.2013

После того, как я сказал своему серверу пользователю AuthenticationSchemes.IntegratedWindowsAuthentication, он автоматически доставляет WindowsPrincipal, который предоставляет информацию из AD.

person Tim Hartnack    schedule 21.02.2013
comment
можешь показать пример? как вы пересылаете заголовок MD5? - person Vladimir B; 25.05.2021