Я надеюсь, что кто-то может помочь, либо помогая определить, что мне не хватает, либо подтвердив, действительно ли это возможно.
Задний план
У нас есть новая виртуальная машина 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/
Возможные варианты продвижения вперед:
Здесь есть что почитать, получайте удовольствие от обучения:
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