2013-07-23 5 views
3

У меня есть требование интегрировать веб-приложение ASP.NET с активным каталогом - в основном они хотят иметь возможность аутентификации и авторизации с помощью AD.Среда разработки Active Directory

Я понимаю, что это относительно просто, но я хочу знать, как я могу имитировать AD для разработки и тестирования. У меня нет доступа к AD для меня (прямо сейчас) и не дорожите мыслью о настройке, даже если бы у меня было оборудование, доступное для его запуска.

Какие еще варианты доступны для меня? Я видел ADAM mentioned в нескольких местах, но это, похоже, не предоставляет необходимые мне федеративные услуги (и кажется немного устаревшим). Можно ли использовать Azure для этого? Я хочу свести расходы (как время, так и деньги) к минимуму.

ответ

2

Мне удалось настроить активную среду каталогов, подходящую для разработки, используя виртуальную машину Microsoft Azure.

Краткое описание шагов, которые я прошел, чтобы получить эту работу, приведено ниже. Хотя это звучит страшно, настраивая AD и ADFS, интерфейс Windows Server 2012 делает его невероятно легким, не говоря уже о некоторых из них, о которых я упоминал ниже - для их установки также требуется некоторое время.

  1. Создайте новый сервер Windows Azure 2012 и добавьте конечные точки для http и https.
  2. Установка роли AD на VM
  3. Установите роль ADFS на VM
  4. Создание ASP.NET MVC 4 приложения (на вашей машине Dev) и убедитесь, что он правильно работает.
  5. Запуск приложения через IIS (не IIS express - это просто упрощает SSL и т. Д.).
  6. Убедитесь, что сайт имеет HTTPS связывание установить
  7. Install the Identity and Access tool for VS2012
  8. правой кнопкой мыши проект, чтобы выбрать инструмент идентичности и доступа.
  9. Путь к метаданному STS будет https://<your VM url>/FederationMetadata/2007-06/FederationMetadata.xml (вам может потребоваться загрузить этот файл вручную, если ваши сертификаты самоподписаны).
  10. Вернитесь на свою виртуальную машину, в ADFS создайте доверительное доверие для своего приложения.
  11. Запустите приложение MVC еще раз, и вы должны перенаправить на свою виртуальную машину для аутентификации, а затем снова вернуться в приложение (но на этот раз с помощью https).
  12. Если вы используете шаблон MVC по умолчанию, в верхнем правом углу если вы настроили требования правильно, вы должны увидеть Привет, < пользователь> @ домен <>

Основные статьи, которые я последовал за для достижения этой цели являются:

http://blogs.rondewit.com/post/MVC-2b-ADFS-20-Federated-Authentication.aspx http://garymcallisteronline.blogspot.co.uk/2013/01/aspnet-mvc-4-adfs-20-and-3rd-party-sts.html

Ниже приведен список Гоча, что я попал (в произвольном порядке).

  1. При настройке доверия доверенных лиц введите данные вручную и убедитесь, что вы правильно установили URL-адрес пассивного протокола WS-федерации и идентификаторы доверия доверенных сторон. Первый - это просто https-адрес, который ADFS будет перенаправлять обратно после завершения проверки подлинности - например, https://localhost. Второй - это идентификатор, используемый для идентификации приложения, которое пытается аутентифицироваться. Один из введенных идентификаторов должен соответствовать атрибуту realm узла wsFederation в ваших приложениях MVC 4 web.config.
  2. При входе в систему имя пользователя должно быть в форме домена <> \ < имя пользователя>
  3. Я не мог получить проверку подлинности Windows для работы с любым браузером, кроме IE. Для этой настройки для работы с Chrome мне пришлось изменить порядок локальных типов проверки подлинности в файле web.config приложения adfs/ls, чтобы сначала появилась проверка подлинности. Чтобы добраться до этого, откройте диспетчер IIS на своей виртуальной машине, разверните веб-сайт по умолчанию/adfs/ls, щелкните правой кнопкой мыши ls и выберите «исследовать».
  4. На момент написания статьи я не смог войти в систему с пользователем AD, который я создал сам, - я, вероятно, просто не настроил его правильно. При первоначальной настройке я предлагаю попробовать подключиться к пользователю admin, созданного вами через портал azure при создании виртуальной машины.
  5. После того, как я, наконец, сумел правильно аутентифицироваться. AntiForgeryToken html helper начал бросать исключение, говоря о недостающих утверждениях. Убедитесь, что вы добавили правило претензии к доверенности доверяющей стороны, которое устанавливает либо требование имени, либо имя идентификатора. Затем в Application_Start выполните следующие действия: AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.Name;, как описано here.

Следует также отметить, что инструмент Identity and Access позволяет настраивать аутентификацию с помощью Azure ACS и более примечательно, STS разработки. Для моих требований мне нужно иметь возможность интегрироваться с ADFS, но если вы просто экспериментируете с аутентификацией на основе утверждений, один из них может быть лучшим вариантом, чем процесс, который я прошел выше.

0

Рассмотрите ADFS и ws-федерацию.

Ws-федерация - это протокол sso предприятия, который дает вам аутентификацию/авторизацию через домен. Adfs - это бесплатная реализация протокола, который находится поверх активного каталога. Его относительно легко настроить.

Но имея клиентское приложение, которое ожидает поставщика удостоверения ws-федерации, вы можете заменить поставщика любым совместимым поставщиком, вашим собственным или сервером идентификации, который является другой бесплатной реализацией, но может использовать поставщик членства. С другой стороны, полностью пользовательская реализация даст вам возможность настроить и обслуживать произвольные идентификаторы .

небольшой кривой обучения для этого подхода, но benetifs являются:

  • междоменного SSO
  • поддержка нескольких браузеров бесплатно (Керберос/аутентификации объявлений на основе NTLM может не поддерживаться на некоторых браузерах)
  • работает в интранете и интернете
  • поддержка сложных сценариев, такие как, например, вы можете настроить облако Office365 аутентифицировать против вашего местного ADFS
  • adfs 2.0 является свободным компонентом dowloadable из msdn
+0

Спасибо за ваш ответ Wiktor. Я действительно использую ADFS. Как настроить среду разработки для проверки этой интеграции? – s1mm0t

+0

Самый простой способ - настроить собственный пользовательский STS, который имитирует ADFS. Есть несколько хороших учебников, я также написал один раз http://netpl.blogspot.com/2011/08/quest-for-customizing-adfs-sign-in-web.html –

Смежные вопросы