Настройка портала удаленного входа ASP.NET VB.NET - PullRequest
0 голосов
/ 06 апреля 2011

Технология ASP.NET, VB.NET 2.0 (скоро будет 4.0)

Обзор Я пишу Портал авторизации / аутентификации, чтобы веб-приложение могло использовать его для входа в систему, а затем они могли использовать приложение, используя свои учетные данные.

Портал входа в систему будет отдельным приложением и изначально доступен только через экстрасеть, а также интрасеть для определенных приложений; но будущие приложения должны будут проходить аутентификацию через Интернет (рад реализовать в качестве отдельного экземпляра). В основном я хочу, чтобы другие отдельные приложения могли аутентифицировать пользователей через этот портал.

Так что ...

  1. Пользователь переходит на веб-адрес приложения (например, www.application.com / http://apps/application - интранет) и нажимает кнопку «Войти».
  2. Браузер пользователя перенаправляется в приложение портала с запросом строка www.loginportal.com/login.aspx?url=www.application.com/login.aspx (или другая страница).
  3. Пользователь вводит свои учетные данные (имя пользователя, пароль) и нажимает Кнопка «Войти».
  4. Браузер перенаправляет обратно на URL, т. Е. Www.applications.com/default.aspx или login.aspx, аутентифицируется и входит в систему; и можете использовать приложение.

Завершена У меня сама аутентификация отсортирована, и я буду реализовывать ее как библиотеку классов в локальных приложениях через dll.

Потребность Поэтому мне нужно знать, как: 1. Разместите данные на URL портала (может быть другой домен). 2. Перенаправить браузер с постом. 3. Убедитесь, что аутентификация безопасна, и ее нелегко взломать (я знаю, как использовать urlencode, htmlencode и т. Д.) - просто не уверен в последствиях размещения данных между доменами.

Любая помощь с благодарностью ...

Ура, Дункан.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2011

ОК, так что это решение, которое я использовал в итоге:

В исходном приложении (которое требует аутентификации; шаг 1 выше) я перенаправляю пользователя на портал авторизации и включаю оригиналURL в качестве параметра получения.Затем пользователь вводит свои данные, имя пользователя и пароль.

Затем серверный код аутентифицирует их и перенаправляет на новую страницу, где я отправляю обратно на страницу HTML-форму, которая включает дату и время запроса.(для безопасности) вместе с зашифрованной строкой (включая дату и время запроса) данных, которые я хочу отправить обратно в исходную форму.

Я также добавляю метод публикации JavaScript, который отправляет данные на исходный URL-адрес в виде публикации формы.Поскольку я использую одну и ту же библиотеку классов на обоих концах, я могу зашифровать и расшифровать данные, используя один и тот же метод, а исходное запрашивающее приложение имеет все пользовательские данные, включая возможность проверки даты и времени запроса (я разрешаю наборпромежуток времени между проверкой подлинности и получением исходным приложением, убедившись, что это в течение, скажем, 5 минут.

И работа выполнена.

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

Не самое элегантное решение, но оно работает, и оно безопасно, поэтому я счастлив. :).

0 голосов
/ 07 апреля 2011

Серьезно сложные вещи, здесь.Если бы это был я, я бы в значительной степени опирался на Windows Identity Foundation .Я считаю, что он может поддержать этот сценарий (на самом деле не сделал этого; кто-то еще в моей компании развивается против него).

...