настройка аутентификации Windows AD в приложении .Net Core 2.x MVC - PullRequest
0 голосов
/ 03 мая 2019

Я создал веб-приложение .Net Core 2.2 MVC (страницы Entity Framework и Razor).

Приложение размещено на сервере Windows 2016 с использованием IIS и принадлежит нашему домену Windows AD.

Приложение работает нормально, без аутентификации или анонимной аутентификации.

Однако теперь я хочу включить защиту для одного из контроллеров таким образом, чтобы к нему мог получить доступ пользователь AD, который вошел на свою рабочую станцию ​​в нашем домене.

Итак, я следовал этому уроку:

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-2.2&tabs=visual-studio#server-side-configuration-with-the-iis-manager

Я настроил свой класс запуска для включения необходимой записи в ConfigureServices:

Startup.cs:

using Microsoft.AspNetCore.Server.IISIntegration;

public void ConfigureServices(IServiceCollection services)
{
    //...
    services.AddAuthentication(IISDefaults.AuthenticationScheme);
    //...
}

И это контроллер, у которого есть один метод, который я хочу заблокировать:

ResearchController.cs:

using Microsoft.AspNetCore.Authorization;


public class SecuredOptionsController : Controller
{
    [Authorize(Roles = "FrankJ, AliceR")]
    [HttpPost]
    public async Task<IActionResult> AccessSecretData(DateTime? start, DateTime? end)
    {
        return View();
    }
}

Я хочу, чтобы только два пользователя Домена имели доступ к этому: Я добавил учетные записи домена FrankJ и AliceR AD в раздел учетных записей пользователей в Windows Server.

Когда я нажимаю на этот контроллер, появляется приглашение для входа, но оно никогда не срабатывает, когда я вхожу в учетные данные для FrankJ или AliceR. Я пробовал просто использовать 'FrankJ' и пробовал 'TheDomain / FrankJ'

Чего мне не хватает?

1 Ответ

1 голос
/ 10 мая 2019

Это было легко исправить, и мне удалось заставить его работать, добавив следующие две строки:

В моем контроллере мне пришлось добавить домен следующим образом:

 [Authorize(Roles = "MyDomain\\DevOps")]

И в методе Configure Startup.cs мне пришлось добавить это:

app.UseAuthentication();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...