Аутентификация Active Directory в интрасети с помощью VB.NET - PullRequest
0 голосов
/ 23 июня 2010

Я занимаюсь разработкой веб-приложения для интрасети и учусь подключать VB к Active Directory.Мы собираемся сделать некоторые разрешения для конкретного местоположения, и мой босс хочет (если возможно), чтобы я подключился к Active Directory, чтобы узнать местоположение пользователей.

Я думаю, что все, что мне нужно сделать, это получитьимя пользователя, но я не уверен, что это лучший способ сделать это.Мы являемся магазином только для Microsoft, поэтому IE и IIS стоят на пороге дня.Чтобы получить доступ к интрасети, вы должны войти в систему с помощью нашего домена, так что это один уровень безопасности, но затем мне нужно пройти проверку подлинности и убедиться, что у пользователя есть разрешения на внесение изменений.Я думаю, у нас либо будет модификатор (если его еще нет) в информации AD, либо мы будем хранить таблицу разрешений в базе данных, но, вероятно, предпочтительнее первый.

Я знаю, что IIS имеетфункция, которая позволяет / требует аутентификацию, но я не совсем уверен, как это должно работать.

Так, каков самый лучший / самый простой / несколько (самый?) безопасный способ получить учетные данные пользователей?Я всегда мог сделать страницу входа, но было бы намного лучше, если бы я мог просто получить их учетные данные AD в фоновом режиме.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 июня 2010

вам нужно отключить анонимную авторизацию для вашего сайта IIS и вместо этого включить windows-auth.

Теперь перейдите в ваш web.config и измените следующее

<authentication mode="Windows"> 
...
</authentication>

см. http://msdn.microsoft.com/en-au/library/532aee0e(v=VS.80).aspx

&

если необходимо

<identity impersonate="true" />

см. http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx

теперь вы сможете получить текущего пользователя с помощью

HttpContext.Current.User.Identity.Name

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

HttpContext.Current.User.IsInRole("YourActiveDirectoryGroup")
1 голос
/ 23 июня 2010

IIS можно настроить для использования встроенной аутентификации, которая предоставит вам доступ к имени samaccount (вход в систему до Windows 2000) пользователя.С этим вы можете сделать запрос LDAP против AD и проверить членство в группе.Если пользователь является членом группы CanModifyStuffGroup (которую вы создали в AD и добавили пользователей), то пусть они вносят изменения, в противном случае предоставьте им версию только для чтения - или что-то подобное.

...