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

ASP.NET MVC для нескольких сайтов с использованием OpenID

Я собираю план для ряда сайтов, которые будут совместно использовать информацию об учетной записи пользователя. Идея состоит в том, что, как только пользователь регистрируется в своем OpenID, он может получить доступ к любому из сайтов, и он будет знать, кто они.

Каковы общие шаблоны/лучшие практики, которые я мог бы использовать для достижения этого?

4b9b3361

Ответ 1

Если все сайты имеют общее имя хоста в своем URL-адресе, вы можете установить файл cookie файла (FormsAuthentication.SetAuthCookie), указав путь к файлу cookie как "/", чтобы все сайты могли видеть, что пользователь вошел в систему.

Если сайты не используют общее имя хоста, я думаю, что единственный способ получить действительно "однажды подписанный, подписанный во всем мире [в пределах вашего кольца веб-сайтов]", был бы для всей аутентификации только одним (возможно, один, посвященный аутентификации пользователя), а для других сайтов перенаправить пользователя на этот сайт для аутентификации, а затем этот сайт будет перенаправлять обратно. По сути, этот auth-сайт становится провайдером идентификации и почти точно заполняет роль провайдера OpenID (на самом деле DotNetOpenAuth можно использовать здесь для этой конкретной цели). Поскольку вам кажется, что ваша цель - позволить пользователю войти в систему с помощью OpenID, ваш поставщик OpenID на том же самом сайте auth может сам использовать OpenID для аутентификации пользователя. Ваш собственный поставщик OpenID с чистой делегацией может быть написан таким образом, чтобы он всегда отвечал сразу на запросы checkid_immediate, пока Realm в запросе auth является вашим доверенным кольцом сайтов. Таким образом, вы можете использовать единый вход на всех ваших сайтах.

Ответ 2

Пожалуйста, рассмотрите следующие шаблоны и методы защиты веб-служб от Microsoft:

Брокерская аутентификация - http://msdn.microsoft.com/en-us/library/aa480560.aspx

Основная тема - Безопасность веб-сервисов

Сценарии, шаблоны и руководство по внедрению для улучшения веб-сервисов (WSE) 3.0

http://msdn.microsoft.com/en-us/library/aa480545.aspx

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