Я использую API-интерфейс aspnetcore2.1 и настроен для аутентификации Windows с использованием приведенного ниже кода. Это должно работать для всех пользователей, которые находятся на моем сервере ADFS, который находится в той же сети, и машина, с которой я пытаюсь получить доступ к сайту, включена в тот же домен сервера ADFS.
Вapp, в разделе ConfigureServices
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.AddHttpContextAccessor();
и в разделе Configure
app.UseAuthentication();
Я также добавил файл web.config для приложения при его развертывании, который выглядит следующим образом
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="dotnet"
arguments=".\sampleapi.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
forwardWindowsAuthToken="true"/>
</system.webServer>
<system.web>
<authentication mode="Windows"/>
<authorization>
<allow users="*"/>
<allow roles="*"/>
</authorization>
</system.web>
И теперь сайт запрашивает учетные данные, как и ожидалось, когда я пытаюсь получить доступ к приложению.
Я пробовал разные учетные записи пользователей с компьютера и учетных записей сервера ADFSНикто из них не работал. Есть ли что-то, что я пропустил? Я убедился, что NTLM является первым в списке в списке поставщиков в конфигурации IIS. Я изменил удостоверение пула приложений на пользовательского пользователя, который принадлежит пользователям ADFS, имеющим административный доступ к текущему компьютеру (также здесь находится сайт).