Asp.net core windows authentication not working in iis – stack overflow

Чтобы включить метод проверки подлинности для www

  1. Создайте учетную запись пользователя, соответствующую методу проверки подлинности. Если целесообразно, добавьте учетную запись в группу пользователей Windows. Более подробные сведения о создании учетных записей Windows см. в разделе Защита файлов средствами NTFS.
  2. Сконфигурируйте разрешения NTFS для каталога или файла, доступом к которым необходимо управлять. Дополнительные сведения см. в разделе Задание разрешений NTFS для каталога или файла.
  3. В оснастке IIS выберите веб-узел, каталог или файл и откройте вкладки его свойств.
  4. Выберите соответствующую вкладку: Безопасность файла или Безопасность каталога. В группе Анонимный доступ и проверка подлинности нажмите кнопку Изменить.
  5. В диалоговом окне Способы проверки подлинности выберите один или несколько способов.

Чтобы включить метод проверки подлинности для ftp

  1. Выполните шаги 1-3 процедуры, описанной выше.
  2. Выберите вкладку Безопасные учетные записи. Установите флажок Разрешить анонимные подключения.

    Примечание.   Для FTP проверка подлинности может быть установлена только на уровне узла.

  3. В поля Пользователь и Пароль введите имя и пароль для анонимного входа. Имя пользователя — это учетная запись анонимного пользователя. Обычно имя пользователя задается в виде IUSR_ИмяКомпьютера. Если флажок Разрешить управление паролем из IIS установлен, то чтобы изменить пароль, нужно сбросить его.
  4. Установите флажок Разрешить управление паролем из IIS для согласования паролей с учетными записями пользователей Windows.

    Примечание.   Синхронизацию паролей можно использовать только для учетных записей анонимных пользователей, которые определены на локальном компьютере, но не для анонимных учетных записей на других компьютерах в сети.

  5. Чтобы все пользователи подключались как анонимные, установите флажок Разрешить только анонимные подключения.
  6. Нажмите кнопку OK.
  7. Установите соответствующие разрешения NTFS для анонимной учетной записи. Дополнительные сведения см. в разделе Задание разрешений NTFS для каталога или файла.
Похожее:  Allavsoft Video Downloader Converter 3.24.7.8177 скачать бесплатно

Примечание

  • Анонимная и встроенная проверка подлинности Windows выбраны по умолчанию.
  • И краткая, и встроенная проверка подлинности имеют приоритет перед обычной проверкой. Чтобы гарантировать проверку подлинности всех пользователей только обычной проверкой, сбросьте все остальные флажки.
  • Краткая и встроенная проверки подлинности не могут быть использованы для узлов FTP.
  • Веб-сервер будет использовать обычную, краткую и встроенную проверку подлинности только при выполнении следующих условий:

    • Анонимный доступ не разрешен.
    • Попытка анонимного доступа оказалась неудачной или доступ к файлам и каталогам ограничен разрешениями NTFS.

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

Asp.net core windows authentication not working in iis

Asp.Net Core doesn’t seem to recognize the user from the call context?.User?.Identity?.Name when windows authentication is enabled and running in IIS Express or IIS.

Desired behavior: Enabling both Windows authentication and anonymous authentication in IIS and/or IIS Express, Asp.Net Core should automatically recognize the windows user.

Actual behavior: When I enable both windows and anonymous authentication in IIS or IIS Express, the user name is null. When I disable anonymous authentication or call HttpContext.ChallengeAsync(IISDefaults.AuthenticationScheme), I get a login prompt, which I don’t want.

My understanding is that, even though I want to use this for Active Directory, I don’t need active directory or a domain to authenticate a windows user.

Environment:

Dependencies:

  • Microsoft.AspNetCore.All 2.0.8

Startup:

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<IISOptions>(iis =>
    {
        iis.AuthenticationDisplayName = "Windows";
        iis.AutomaticAuthentication = true;
    });

    services.AddAuthentication(IISDefaults.AuthenticationScheme);
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseAuthentication();
    app.Run(async (context) =>
    {
        await context.Response.WriteAsync(JsonConvert.SerializeObject(new
        {                
            UserName = context?.User?.Identity?.Name
        }));
    });       

launchSettings.json:

{
  "iisSettings": {
    "windowsAuthentication": true,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:51682/",
      "sslPort": 0      
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="aspNetCore" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore forwardWindowsAuthToken="true" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile=".logsstdout" />
  </system.webServer>
</configuration>

applicationhost.config: (IIS Express)

Based on this article: https://vhod-v-lichnyj-kabinet.ru/en-us/iis/configuration/system.webServer/security/authentication/windowsAuthentication/

<authentication>
  <anonymousAuthentication enabled="true" userName="" />
  <basicAuthentication enabled="false" />
  <clientCertificateMappingAuthentication enabled="false" />
  <digestAuthentication enabled="false" />
  <iisClientCertificateMappingAuthentication enabled="false"></iisClientCertificateMappingAuthentication>
  <windowsAuthentication enabled="true">
    <providers>
      <add value="NTLM" />
    </providers>
  </windowsAuthentication>
</authentication>

How to secure a default iis site & enable windows authentication

Step 1: (Select your site, probably “Default Web Site”, and select “Authentication”) In my case you can see I have many IIS Sites, these instructions are valid for just about any IIS site.IIS Secure PortalStep 2: (Disable Anonymous and Enable Windows Auth.) If you don’t have Windows Authentication as an option you will have to add this feature from Server manager under “Roles / Services” for IIS”EX. IIS Win Authentication Feature of IISIIS Server Manager

If you already had Windows Authentication installed for IIS then this is how you should configure your Authentication option for that site.

IIS Authentication Secure

Step 3: You have to change the permissions of the web site. I would break inheritance first and remove “Users” from having any access. Thus leaving behind any default Admin security principals that have access. For one-off users, you can simply add them back into the permission stack here with basic read-only access. Note – I did this for “Frank” so that he can have read access to my reports. Normally most people would grant a specific Group Read access to the site.

Right-click site select “Edit Permissions.”

IIS Secure Portal Permission

Next, click “Advanced.”

IIS Secure Portal Properties

Then, select “Change Permissions.”

IIS Secure Portal Change Permissions

Now, UNCHECK, “Include inheritable permissions from this objects parent”

When prompted with a WARNING, select ADD. This simply copies the existing permissions back without inheritance, this is very important as to not break the website for yourself and the system at large.

IIS Advanced Settings

Next, delete the permission for Users. This will disable the ability for any domain users to simply authenticate to your site to view the reports. Also, this default set of permissions will now allow local admins, and members of IIS_IUSRS to log in and view reports. This set of base permissions can vary from OS to OS. At this stage, you should also double check that no other well-known security principals have any access such as “Everyone”, or “Authenticated Users”.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *