Проверка подлинности Microsoft Azure

Рик Андерсон

Средства Microsoft ASP.NET для Windows Azure Active Directory упрощают включение проверки подлинности для веб-приложений, размещенных на веб-сайтах Windows Azure. Вы можете использовать проверку подлинности Windows Azure для проверки подлинности Office 365 пользователей из вашей организации, корпоративных учетных записей, синхронизированных из локальной службы Active Directory, или пользователей, созданных в пользовательском домене Windows Azure Active Directory. Включение проверки подлинности Windows Azure позволяет настроить приложение для проверки подлинности пользователей с помощью одного клиента Windows Azure Active Directory .

Средство проверки подлинности Windows Azure ASP.NET не поддерживается для веб-ролей в облачной службе, но мы планируем сделать это в будущем выпуске. Windows Identity Foundation (WIF) поддерживается в веб-ролях Windows Azure.

Дополнительные сведения о настройке синхронизации между локальной службой Active Directory и клиентом Windows Azure Active Directory см. в статье Использование AD FS 2.0 для реализации единого входа и управления ими.

Windows Azure Active Directory в настоящее время доступна в качестве бесплатной предварительной версии службы.

Требования:

Создание веб-приложения ASP.NET с помощью Visual Studio 2012

Вы можете создать любое веб-приложение с помощью Visual Studio 2012. В этом руководстве используется шаблон интрасети ASP.NET MVC.

  1. Создайте новое приложение ASP.NET интрасети MVC 4 и примите все значения по умолчанию. (Это должна быть сеть In tra , а не проект In ter net.) Снимок экрана: диалоговое окно

Включение проверки подлинности Windows Azure (если вы являетесь глобальным администратором tenet)

Если у вас нет существующего клиента Windows Azure Active Directory (например, с помощью существующей учетной записи Office 365), вы можете создать новый клиент, зарегистрировавшись для новой учетной записи Windows Azure Active Directory.

  1. В меню Проект выберите Включить проверку подлинности Windows Azure:

    Снимок экрана: раскрывающееся меню

  2. Введите домен для клиента Windows Azure Active Directory (например, contoso.onmicrosoft.com) и нажмите кнопку Включить:

Снимок экрана: диалоговое окно

  1. В диалоговом окне Веб-проверка подлинности войдите в качестве администратора клиента Windows Azure Active Directory:

    Снимок экрана: страница входа microsoft Office 3 6 5 Web Authentication.

Снимок экрана: страница входа в Windows Azure.

Включение Window Azure неадминистратором тенета

Если у вас нет прав глобального администратора для клиента Windows Azure Active Directory, можно снять флажок для подготовки приложения.

Снимок экрана: диалоговое окно

В диалоговом окне отображаются домен, идентификатор субъекта приложения и URL-адрес ответа , необходимые для подготовки приложения с использованием принципа Azure Active Directory. Эти сведения необходимо предоставить пользователю, у которого есть достаточные привилегии для подготовки приложения. Дополнительные сведения о том, как использовать командлет для создания субъекта-службы вручную, см. в статьеРеализация единого входа в Windows Azure Active Directory — приложение ASP.NET . После успешной подготовки приложения можно нажать кнопку Продолжить, чтобы обновить web.config с выбранными параметрами. Если вы хотите продолжить разработку приложения в ожидании подготовки, нажмите кнопку Закрыть, чтобы запомнить параметры в файле проекта. При следующем вызове включить проверку подлинности Windows Azure и снятии флажка подготовки вы увидите те же параметры и нажмите кнопку Продолжить, а затем нажмите кнопку Применить эти параметры в web.config.

  1. Подождите, пока приложение настроено для проверки подлинности Windows Azure и подготовлено с помощью Windows Azure Active Directory.

  2. После включения проверки подлинности Windows Azure для приложения нажмите кнопку Закрыть:

    Снимок экрана: диалоговое окно Включение проверки подлинности Windows Azure.

  3. Нажмите клавишу F5, чтобы запустить приложение. Вы автоматически будете перенаправлены на страницу входа. Используйте учетные данные пользователя каталога для входа в приложение.

    Снимок экрана: страница входа в Windows Azure.

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

    Это предупреждение можно проигнорировать во время локальной разработки, щелкнув Продолжить на этом веб-сайте:

    Снимок экрана: предупреждение системы безопасности веб-сайта. Продолжить на этом веб-сайте не рекомендуется обведен красным цветом.

  5. Вы успешно вошли в приложение с помощью проверки подлинности Windows Azure.

    Снимок экрана, на котором показана домашняя страница моего S P dot NET.

Включение проверки подлинности Windows Azure вносит следующие изменения в приложение:

  • В проект добавляется класс CSRF ( App_Start\AntiXsrfConfig.cs ).

  • Пакеты System.IdentityModel.Tokens.ValidatingIssuerNameRegistry NuGet добавляются в проект.

  • Параметры Windows Identity Foundation в приложении будут настроены для приема маркеров безопасности из клиента Windows Azure Active Directory. Щелкните изображение ниже, чтобы просмотреть развернутое представление изменений, внесенных в файлWeb.config .

    Снимок экрана: строки кода с 9 по 67. Некоторые строки удаляются из снимка экрана, а строки с 92 по 97 остаются.

  • Субъект-служба для приложения в клиенте Windows Azure Active Directory будет подготовлен.

  • Протокол HTTPS включен.

Развертывание приложения в Windows Azure

Полные инструкции см. в статье Развертывание веб-приложения ASP.NET на веб-сайте Windows Azure.

Чтобы опубликовать приложение, использующее проверку подлинности Windows Azure, на веб-сайте Azure:

  1. Щелкните правой кнопкой мыши приложение и выберите Опубликовать:

    Снимок экрана, на котором показано меню правой кнопкой мыши win Azure Auth Demo (Демонстрация win Azure Auth Demo). Выбран параметр Опубликовать.

  2. В диалоговом окне Публикация веб-сайта скачайте и импортируйте профиль публикации для веб-сайта Azure.

    Снимок экрана: страница

  3. На вкладке Подключение отображается конечный URL-адрес (общедоступный URL-адрес приложения). Нажмите кнопку Проверить подключение , чтобы проверить подключение:

    Снимок экрана: страница

  4. Если вы уже публиковали на этом веб-сайте Azure ранее, установите флажок Удалить дополнительные файлы в назначении , чтобы убедиться, что приложение выполняет чистую публикацию. Обратите внимание, что установлен флажок Включить проверку подлинности Windows Azure проверка.

    Снимок экрана: страница

  5. Необязательно. На вкладке Предварительный просмотр нажмите кнопку Начать предварительный просмотр , чтобы просмотреть развернутые файлы.

    Снимок экрана: страница предварительного просмотра в диалоговом окне Публикация веб-страницы.

  6. Нажмите кнопку Опубликовать.

    Вам будет предложено включить проверку подлинности Windows Azure для целевого узла. Нажмите кнопку Включить , чтобы продолжить:

    Снимок экрана: диалоговое окно

  7. Введите учетные данные администратора для клиента Windows Azure Active Directory:

    Снимок экрана, на котором показана страница входа в систему веб-проверки подлинности Windows Azure.

  8. После успешной публикации приложения браузер откроет опубликованный веб-сайт.

    Примечание

    После включения проверки подлинности Windows Azure для целевого узла может потребоваться до пяти минут (как правило, гораздо меньше). Если при первом запуске приложения появляется ошибка ACS50001: не найдена проверяющая сторона с именем [realm], подождите несколько минут и повторите попытку запуска приложения.

  9. При появлении запроса войдите в каталог от имени пользователя:

    Снимок экрана: страница входа в Windows Azure.

  10. Вы успешно выполнили вход в размещенное приложение Azure с помощью проверки подлинности Windows Azure.

    Снимок экрана: домашняя страница My A S P.

Известные проблемы

Сбой авторизации на основе ролей при использовании проверки подлинности Windows Azure

В настоящее время проверка подлинности Windows Azure не предоставляет необходимое утверждение роли для выполнения авторизации на основе ролей. Роль пользователя, прошедшего проверку подлинности, должна быть извлечена вручную из Windows Azure Active Directory.

При переходе к приложению с проверкой подлинности Windows Azure возникает ошибка "ACS20016 Домен вошедшего пользователя (live.com) не соответствует ни одному из разрешенных доменов этой службы маркеров безопасности".

Если вы уже вошли в учетную запись Майкрософт (например, hotmail.com, live.com outlook.com) и пытаетесь получить доступ к приложению, которое включило проверку подлинности Windows Azure, вы можете получить ответ об ошибке 400, так как домен учетной записи Майкрософт не распознается Windows Azure Active Directory. Чтобы войти в приложение, сначала выйдите из учетной записи Майкрософт.

Вход в приложение с включенной проверкой подлинности Windows Azure и X509CertificateValidationMode, отличной от None, приводит к ошибкам проверки сертификата accounts.accesscontrol.windows.net.

Проверка сертификата не требуется и должна быть отключена. Отпечаток сертификата издателя проверяется WSFederationAuthenticationModule.

При попытке включить проверку подлинности Windows Azure в диалоговом окне веб-проверки подлинности отображается сообщение об ошибке "ACS20016: домен вошедшего пользователя (contoso.onmicrosoft.com) не соответствует ни одному из разрешенных доменов этой службы маркеров безопасности".

Эта ошибка может возникнуть, если вы ранее успешно выполнили вход с помощью другой учетной записи Windows Azure Active Directory в рамках того же процесса Visual Studio. Выйдите из указанной учетной записи или перезапустите Visual Studio. Если вы ранее вошли в систему и выбрали параметр "Оставаться в системе", может потребоваться очистить файлы cookie браузера.

ACS20012: запрос не является допустимым сообщением протокола WS-Federation

Это может произойти, если вы уже выполнили вход с помощью другого идентификатора Майкрософт в одну из служб Azure. Используйте частное окно браузера, например InPrivate в IE или инкогнито в Chrome, или очистите все файлы cookie.

Дополнительные ресурсы