Страницы входа и обнаружение домашней области
Обновлено: 19 июня 2015 г.
Область применения: Azure
Microsoft Azure Active Directory контроль доступа (также известный как служба контроль доступа или ACS) предоставляет два простых способа создания федеративной страницы входа для веб-сайта или приложения:
Вариант 1. Страница входа ACS-Hosted
ACS размещает базовую федеративную страницу входа, которую можно использовать в приложении проверяющей стороны. Эта страница для входа размещается на конечной точке протокола WS-Federation пространства имен и доступна по URL-адресу наподобие следующего.
https://<YourNamespace>.accesscontrol.windows.net/v2/wsfederation?wa=wsignin1.0&wtrealm=<YourAppRealm>&redirect=false
В этом URL-адресе замените <YourNamespace> именем пространства имен контроль доступа. Кроме того, в URL-адресе необходимы следующие параметры:
wa — задайте как wsignin1.0
wtrealm — задайте значение области для приложения проверяющей стороны. Чтобы найти значение области, на портале управления ACS щелкните приложения проверяющей стороны, выберите приложение и просмотрите поле области .
Чтобы найти ссылки на страницы входа для приложений проверяющей стороны:
Перейдите на портал управления Microsoft Azure (https://manage.WindowsAzure.com), войдите и щелкните Active Directory. (Совет по устранению неполадок: элемент Active Directory отсутствует или недоступен)
Для выполнения управления пространством имен Access Control выберите пространство имен и щелкните Управление. (Или щелкните Пространства имен Access Control, выберите пространство имен, а затем щелкните Управление.)
Щелкните Интеграция приложений, щелкните Страницы для входа, а затем выберите приложение проверяющей стороны.
На странице Интеграция страницы для входа отображаются варианты страницы входа для приложения.
На следующем рисунке показана страница входа по умолчанию для приложения, которое поддерживает Windows Live ID (учетная запись Майкрософт), Google, Yahoo!, Facebook и Contoso Corp, вымышленный поставщик удостоверений WS-Federation.
Чтобы заменить кнопку поставщика удостоверений WS-Federation на поле с адресом электронной почты, добавьте суффиксы адресов электронной почты к ссылкам на страницы входа для поставщика удостоверений WS-Federation. Этот подход полезен, когда несколько поставщиков удостоверений WS-Federation настроено для приложения проверяющей стороны. На приведенном ниже рисунке показан пример страницы.
Чтобы ускорить интеграцию ACS с приложением проверяющей стороны, используйте страницу входа acS, размещенную по умолчанию. Чтобы изменить макет и вид страницы, сохраните страницу по умолчанию в виде HTML-файла и скопируйте HTML и JavaScript в приложение для настройки.
Вариант 2. Размещение пользовательской страницы входа в составе приложения
Чтобы обеспечить полный контроль над внешним видом, поведением и расположением федеративной страницы входа, ACS предоставляет веб-канал метаданных в кодировке JSON с именами, URL-адресами входа, изображениями и доменными именами электронной почты (только) поставщиков удостоверений. Этот канал называется каналом метаданных обнаружения домашней области.
Пример настраиваемой страницы для входа
Чтобы загрузить пример страницы для входа на HTML для каждого приложения проверяющей стороны:
Перейдите на портал управления Microsoft Azure (https://manage.WindowsAzure.com), войдите и щелкните Active Directory. (Совет по устранению неполадок: элемент Active Directory отсутствует или недоступен)
Для выполнения управления пространством имен Access Control выберите пространство имен и щелкните Управление. (Или щелкните Пространства имен Access Control, выберите пространство имен, а затем щелкните Управление.)
Щелкните Интеграция приложений, щелкните Страницы для входа, а затем выберите приложение проверяющей стороны.
На странице Интеграция страницы для входа щелкните Загрузить пример страницы для входа.
Пример HTML-кода идентичен HTML-коду страницы входа, размещенной в ACS.
Данный пример включает функции JavaScript для отображения страницы. Тег script внизу страницы вызывает канал метаданных. Настраиваемые страницы для входа могут считывать метаданные, используя клиентский HTML и JavaScript, как показано в данном примере. Канал также может считываться и использоваться для отображения настраиваемого элемента управления для входа на любом языке, поддерживающем кодировку JSON.
Канал метаданных обнаружения домашней области
Чтобы найти URL-адреса канала метаданных обнаружения домашней области для приложений проверяющей стороны:
Перейдите на портал управления Microsoft Azure (https://manage.WindowsAzure.com), войдите и щелкните Active Directory. (Совет по устранению неполадок: элемент Active Directory отсутствует или недоступен)
Для выполнения управления пространством имен Access Control выберите пространство имен и щелкните Управление. (Или щелкните Пространства имен Access Control, выберите пространство имен, а затем щелкните Управление.)
Щелкните Интеграция приложений, щелкните Страницы для входа, а затем выберите приложение проверяющей стороны.
URL-адрес отображается на странице интеграции страницы входа для приложения в разделе "Вариант 2. Размещение страницы входа в составе приложения".
Ниже приведен пример URL-адреса канала обнаружения домашней области.
https://YourNamespace.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?protocol=wsfederation&realm=YourAppRealm&reply_to=YourAppReturnURL&context=&version=1.0&callback=OptionalFunctionName
В этом URL-адресе используются следующие параметры:
YourNamespace — обязательный параметр. Замените его на имя пространства имен Azure.
protocol — обязательный параметр. Это протокол, используемый приложением проверяющей стороны для взаимодействия с ACS. В ACS это значение должно иметь значение wsfederation.
realm — обязательный параметр. Это область, указанная для приложения проверяющей стороны на портале управления ACS.
version — обязательный параметр. В ACS это значение должно иметь значение 1,0.
reply_to — необязательно. Это URL-адрес возврата, указанный для приложения проверяющей стороны на портале управления ACS. Если этот параметр опущен, для возвращаемого URL-адреса задается значение по умолчанию, настроенное для приложения проверяющей стороны на портале управления ACS.
context — необязательно. Это дополнительный контекст, который можно передать приложению проверяющей стороны в токене. ACS не распознает это содержимое.
callback — необязательно. В этот параметр можно занести имя функции JavaScript, которая должна запускаться при загрузке канала JSON. Строка канала JSON — это аргумент, передаваемый в эту функцию.
Примечание
Канал метаданных в формате JSON может быть изменен, в связи с этим рекомендуется не кэшировать его.
Формат данных канала JSON
При запросе канала метаданных с допустимыми параметрами, описанными выше, в ответ приходит документ, содержащий массив массивов JSON, в котором каждый вложенный массив представляет поставщик удостоверений и содержит следующие поля:
Name — понятное отображаемое имя поставщика удостоверений.
LoginUrl — созданный URL-адрес запроса входа.
LogoutUrl — этот URL-адрес позволяет пользователям выйти из поставщика удостоверений, с помощью которого они вошли. В настоящее время этот параметр поддерживается только для Windows live ID (учетная запись Майкрософт) и пуст для других поставщиков удостоверений.
ImageUrl — изображение для отображения, настроенное на портале управления ACS. Если изображения нет, поле пусто.
EmailAddressSuffixes — массив почтовых суффиксов, связанных с поставщиком удостоверений. В ACS суффиксы адресов электронной почты можно настроить только для поставщиков удостоверений через портал управления ACS. Возвращает пустой массив, если суффиксы не настроены.
В следующем примере показан веб-канал JSON, если для приложения проверяющей стороны настроены Windows Live ID и AD FS 2.0. Пользователь установил URL-адрес изображения для Windows Live ID на портале управления ACS и добавил суффикс домена электронной почты для поставщика удостоверений.
Примечание
Мы добавили разрывы строк для упрощения чтения, а URL-адреса были упрощены для краткости.
[ {
"Name":"Windows Live ID",
"LoginUrl":" https://...",
"LogoutUrl":" https://...",
"ImageUrl":"https://...",
"EmailAddressSuffixes":[]
},
{
"Name":"My ADFS 2.0 Provider",
"LoginUrl":" https://...",
"LogoutUrl":" https://...",
"ImageUrl":"",
"EmailAddressSuffixes":[“contoso.com”]
} ]