Приложение ASP.NET для аутентификации в Active Directory или SQL с помощью аутентификации Windows или Forms Authentication

Я нахожусь в процессе написания приложения, которое будет нуждаться в нескольких формах аутентификации.

Приложению необходимо будет поддерживать аутентификацию в Active Directory, но иметь возможность вернуться к поставщику членства SQL, если пользователь не находится в Active Directory. Мы можем обработать сбой поставщика SQL в коде на основе предоставленного имени пользователя, поскольку имя пользователя будет отличаться от имени пользователя Active Directory.

Это вообще возможно? Я имею в виду, могу ли я использовать членство и использовать оба ActiveDirectoryMembershipProvider и SqlMembershipProvider вместе или мне придется свернуть свое собственное?

Еще одна дополнительная сложность заключается в том, что я хотел бы автоматически проверять подлинность своих внутренних пользователей на основе проверки подлинности Windows в AD, но использовать проверку подлинности с помощью форм для пользователей, не входящих в нашу внутреннюю сеть, или пользователей, использующих поставщик SQL.

Скорее всего, это будут отдельные серверы, один внутренний, а другой внешний, поэтому я планирую многое сделать, чтобы выяснить репликацию данных и как я буду аутентифицировать пользователей AD, если они попадут на внешний сервер и т. Д.

Мне интересно, какие мысли существуют, когда я начинаю идти по этому пути. Возможно ли то, что я хочу сделать, даже если я не сверну свое собственное, или есть способ объединить их вместе?

Спасибо за ответ.

Первоначально я спросил, потому что мне удалось заставить этого конкретного senerio работать около 7 лет назад, используя IIS для аутентификации, а затем передать учетные данные обратно в Lotus Domino Server Web App. Если пользователь не прошел аутентификацию через Windows Authentication / ISS, Domino будет обрабатывать аутентификацию. Это было то, что я хотел сделать здесь, но действительно не мог придумать, как заставить это работать в IIS.

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

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

В качестве дополнительной мысли - есть ли способ добавить достаточно базы данных AD в базу данных SQL, чтобы позволить мне аутентифицировать пользователей в базе данных SQL с внешнего сервера, используя их учетные данные AD, без создания каких-либо проблем безопасности? Я надеюсь, что я четко набираю то, что я думаю ....

Еще раз спасибо!

Тим

Ответы на вопрос(3)

Ваш ответ на вопрос