ASP.NET / IIS 7 - проверка подлинности в Active Directory с использованием принципала - PullRequest
3 голосов
/ 10 мая 2011

Мое текущее приложение использует класс PrincipalContext для аутентификации пользователя по умолчанию (заполнено в выделенном разделе Web.config ) по LDAP (а точнее Active Directory) ):

ldapContext = new PrincipalContext(AdContextType, AdHost, AdContainer, 
                                   ContextOptions.SimpleBind,
                                   AdDefaultUser, AdDefaultPassword)

Эта аутентификация затем позволяет искать любого другого пользователя (через UserPrincipal.FindByIdentity(ldapContext, username)). НО я должен изменить это, так как наличие открытого пользователя в Web.config не приемлемо для моего клиента. ОК, я могу понять, что: -))

Итак, у меня есть несколько решений:

  • удается зашифровать соответствующую часть Web.config (часть membership, с providers и т. Д.)

  • использовать учетную запись из пула приложений IIS 7, в которой развернуто приложение. Это подразумевает получение принципала из IIS (я думаю, этот пункт не должен быть таким сложным), а затем использовать его для аутентификации на AD; но я не могу найти никакого способа для этого, ни через класс PrincipalContext, ни через ActiveDirectoryMembershipProvider один.

Знаете ли вы, как управлять любым из этих двух решений, или вы думаете о каком-либо другом?

Большое спасибо !!

1 Ответ

2 голосов
/ 10 мая 2011

Я думаю, что не имя пользователя ваша проблема, больше пароль? Насколько я могу сказать, второе решение хочет работать. Я не знаю, как это сделать.

Для первого решения вы можете зашифровать имя пользователя и пароль и сохранить зашифрованные значения в строке. После загрузки вам нужно будет расшифровать строки. Но ваше решение не будет защищено от разборки.

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

...