Подтвердить что ты не робот

Приложение ASP.NET на локальном IIS express для аутентификации пользователей, использующих активный каталог

Я пытаюсь настроить локальное веб-приложение asp.net на использование строки подключения LDAP (активного контроллера домена каталогов) для аутентификации пользователя.

Строка подключения LDAP указывает на активный контроллер домена каталогов, доступный через VPN-соединение, которое я использую. Также я использую некоторые общедоступные каталоги LDAP для тестирования.

Я развернул IIS (7) на свою локальную рабочую станцию. Я также выполнил инструкции найденные здесь, и я создал простую службу проверки подлинности форм Active Directory.

Я пытаюсь аутентифицировать своих пользователей на 4 разных LDAP-серверах (2 из AD, 2 без AD)

Вот несколько частей моего web.config:

<connectionStrings>
    <!--<add name="ADConnectionString1" connectionString="LDAP://x01.x02.x03.x04:389/DC=NPAPAN,DC=local" />--> <!-- Active Directory in VPN1 -->
    <add name="ADConnectionString4" connectionString="LDAP://y01.y02.y03.y04:389/DC=corporate,DC=mycompany,DC=com"/> <!-- Active Directory in VPN2 -->
    <!--<add name="ADConnectionString2" connectionString="LDAP://ldap.forumsys.com:389/dc=example,dc=com"/>--> <!-- LDAP server 1 public -->
    <!--<add name="ADConnectionString3" connectionString="LDAP://zflexldap.com:389/dc=example,dc=com"/>--> <!-- LDAP server 1 public --> 
</connectionStrings>
...
<authentication mode="Forms">
    <forms 
    name=".ADAuthCookie" 
    timeout="10" requireSSL="false" protection="None"/>
</authentication>
....
<membership defaultProvider="MyADMembershipProvider">
    <providers>
        <!--<add name="MyADMembershipProvider1" 
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
         connectionStringName="ADConnectionString" 
         connectionUsername="NPAPAN\testadmin" 
         connectionPassword="zzzzzzz"
         attributeMapUsername="sAMAccountName"/>-->
        <add name="MyADMembershipProvider" 
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
         connectionStringName="ADConnectionString" 
         connectionUsername="CORPORATE\_ADMIN_USER" 
         connectionPassword="cccccccc" 
         attributeMapUsername="sAMAccountName" />
        <!--<add name="MyADMembershipProvider2" 
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
         connectionStringName="ADConnectionString" 
         connectionUsername="cn=read-only-admin,dc=example,dc=com" 
         connectionPassword="password"
         attributeMapUsername="uid" />-->
        <!--<add name="MyADMembershipProvider" 
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
         connectionStringName="ADConnectionString3" 
         connectionUsername="cn=ro_admin,ou=sysadmins,dc=zflexsoftware,dc=com" 
         connectionPassword="zflexpass" />-->
     </providers>
</membership>
<authorization>
    <deny users="?"/>
    <allow users="*"/>
</authorization>
...

Используемый мной код - тот, который используется в ссылке из примера приложения.

A) В случае серверов VPN Active Directory

Я могу просматривать AD с помощью информации (LDAP url, port, base DN, connectionUsername, connectionPassword), перечисленных в коде выше с помощью браузера LDAP.

Из веб-приложения IIS я могу привязывать и проверять подлинность пользователей только для VPN 1 Active Directory.

В случае VPN 2 Active Directory я получаю:

Невозможно установить безопасное соединение с сервером

B) В случае открытых LDAP-серверов (v3)

Я не могу связывать + аутентифицировать пользователей в обоих случаях, получая:

Невозможно установить безопасное соединение с сервером

В обоих случаях сервер LDAP использует атрибуты не стандартных AD-объектов, как показано ниже:

снимок экрана конфигурации сервера LDAP

Итак, в первом случае я попытался отобразить имя пользователя для входа:

attributeMapUsername="uid"

Очевидно, что это не сработало.

Мои вопросы таковы:

A) Во втором случае, когда я не могу привязываться к VPN2 AD, я могу ping и telnet контроллер AD. Я также могу подключиться к контроллеру AD с помощью браузера LDAP. Мне интересно, может ли контроллер AD или что-то еще блокировать запросы из моего локального IIS. Что происходит?

B) Могу ли я использовать ActiveDirectoryMembershipProvider для привязки и использования серверов LDAP V3 всех типов?

Если да, то что мне здесь не хватает?

4b9b3361