AspNetCore Web Api Проверка подлинности учетной записи Microsoft - PullRequest
0 голосов
/ 04 января 2019

Моим основным требованием является Web Api, который предоставляет некоторые ресурсы REST. Для доступа к любому ресурсу требуется аутентификация, и я хочу, чтобы это происходило через учетные записи Microsoft. Это веб-API для программного доступа.

Я начал по этому пути: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins?view=aspnetcore-2.2

И добрались до конца. Это, вероятно, работает нормально, но я получаю это:

InvalidOperationException: The default Identity UI layout requires a partial view '_LoginPartial' usually located at '/Pages/_LoginPartial' or at '/Views/Shared/_LoginPartial' to work.

Но мне не нужен пользовательский интерфейс с опытом входа. Я хочу, чтобы приложения (и пользователи из таких клиентов, как браузеры) проходили аутентификацию через Microsoft и затем обращались к моим ресурсам REST.

Мои сервисы настройки выглядят так:

        services.AddIdentity<IdentityUser, IdentityRole>()
                .AddDefaultTokenProviders()
                //.AddDefaultUI(UIFramework.Bootstrap4)
                .AddEntityFrameworkStores<IdentityDbContext>();
        services.AddAuthentication().AddMicrosoftAccount(microsoftOptions =>
        {
            microsoftOptions.ClientId = _config["Authentication:Microsoft:ApplicationId"];
            microsoftOptions.ClientSecret = _config["Authentication:Microsoft:Password"];
        });

А потом:

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

        app.UseStaticFiles();
        app.UseAuthentication();

Программа просто делает:

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseUrls("http://localhost:5000", "https://localhost:5001");

1 Ответ

0 голосов
/ 04 января 2019

Вы внедрили аутентификацию Microsoft И в процессе входа в том же приложении, такое решение создает cookie для ASP.NET.

Возможно, вы хотите, чтобы клиенты проходили аутентификацию через OAuth , передавая токен на предъявителя .
В этом случае вы должны использовать аутентификацию токена JwtBearer .

В этом сценарии ваше приложение НЕ предоставляет пользовательский интерфейс для аутентификации (как в примере), вместо этого ТОЛЬКО проверяет / аутентифицирует полученный токен.

Вот некоторые ссылки

jwt auth в ядре asp.net
JWT проверки
аутентификация токена в Asp.NET
Аутентификация в ASP.NET Core JWT

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