Назад | Перейти на главную страницу

Встроенная проверка подлинности Windows, Azure Active Directory и виртуальная машина Azure, присоединенная к AAD

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

Задний план

У нас есть новая виртуальная машина Azure с Windows 2019 Datacenter и установленным IIS.

Виртуальная машина имеет запись DNS «A», которая указывает на ее IP-адрес. например catchyname.ourdomain.com разрешается в ВМ. Это настроено как в нашем частном DNS Azure для внутренней сети Azure, так и у нашего внешнего поставщика DNS.

Проблема

При прямом входе в виртуальную машину я могу получить доступ к странице приветствия IIS по умолчанию, перейдя к http://machinename/ или через http://localhost и он подается правильно.

Если я попытаюсь перейти на ту же страницу через http://127.0.0.1, через http://catchyname.ourdomain.com или через IP-адрес машины пользователю предлагается ввести имя пользователя и пароль. Интересно, что окно вызова распознает моего пользователя AD (поскольку я вошел в виртуальную машину с помощью) и запрашивает ПИН-код, который сопровождает его, но не принимает никаких вводимых данных и отвечает с ошибкой 401.2.5 и сообщением:

У вас нет прав для просмотра этой страницы из-за неверных заголовков аутентификации.

Когда я проверяю журналы, для успешных запросов я вижу, что исходный IP-адрес в журналах IIS отображается как ::1

Если я вхожу в Интернет, другое приложение в коробке (SSRS2017), которое использует встроенную проверку подлинности Windows с использованием правильного URL-адреса, т.е. http:/machinename/Reports/browse, он также позволяет мне войти и правильно отображает пользователя, в который я вошел, как AzureAD\MyUserName

Если я добавлю machinename к моему C:\Windows\System32\drivers\etc\hosts файл и попробуйте перейти к нему удаленно через http:/machinename/ это тоже не удается.

Вопрос

Можно ли включить аутентификацию AAD для сайтов в IIS, которые разрешаются через псевдоним DNS, который работает так же, как при навигации по имени компьютера или через localhost? Если да, какие шаги мне нужно предпринять?

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

Вещи, которые я пробовал

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

Я постоянно возвращаюсь к тому факту, что если я перейду на http:\\localhost\ все вроде работает, и я не знаю, почему это будет по-другому для http:\\dns-alias\

Кто-нибудь может помочь?

Спасибо!

То, что вы делаете, не сработает, вот почему с некоторыми альтернативами:

Вы включили встроенную проверку подлинности Windows, которая действительно зависит от правильной работы среды домена, которой у вас нет: https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/integrated-windows-authentication

IIS не понимает аутентификацию учетных записей Azure AD, IIS вообще не будет разговаривать с Azure AD для аутентификации, потому что у него просто отсутствует эта функция, независимо от того, какая у вас запись DNS или куда она указывает: https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/

Возможные варианты продвижения вперед:

  1. Попросите свою команду разработчиков интегрировать Проверка подлинности Azure AD в коде приложения (если вы являетесь владельцем приложения и имеете доступ к коду, это не мой предпочтительный метод, если вы не хотите вкладывать средства в изменение кода): https://docs.microsoft.com/en-us/aspnet/visual-studio/overview/2012/windows-azure-authentication
  2. Используйте Azure AD для публикации своего приложения в Интернете без необходимости использования VPN, используя простую прокси-службу от Microsoft под названием Прокси приложения Azure AD, вы устанавливаете его на сервер IIS, регистрируете приложение в Интернете и выполняете некоторую настройку, и все, к вашему приложению можно безопасно получить доступ из любого места. Самое приятное то, что вы можете использовать такие вещи, как аутентификация Azure AD и даже политики условного доступа Azure AD.

Здесь есть что почитать, получайте удовольствие от обучения:

https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/application-proxy https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview