Как войти в систему с помощью JWT в ядре asp.net - PullRequest
0 голосов
/ 05 июля 2019

У меня есть экземпляр IdentityServer4.

Этот экземпляр IdentityServer4 вызывается отдельным основным веб-приложением asp.net (из действия http после входа в систему) для получения JWT.

Что делатьЯ делаю с этим JWT, чтобы "войти" пользователя?

1 Ответ

3 голосов
/ 05 июля 2019

Ваше клиентское приложение, которое хочет пройти аутентификацию, должно взаимодействовать с приложением Identity Server по протоколу Open ID Connect (OIDC).Ядро Asp.net поддерживает это из коробки с расширением AddAuthentication().AddOpenIdConnect(), которое можно использовать для IServiceCollection в вашем файле Startup.cs.

В методе Configure вызов UseAutheticationэто то, что на самом деле «логин» пользователя (он будет добавлять претензии пользователя к входящим запросам).Поэтому, если вы используете, например, MVC, обязательно добавьте эту строку перед вызовом к UseMvc().

Документация Identity Server даже предоставляет пример этого здесь: http://docs.identityserver.io/en/latest/quickstarts/3_interactive_login.html#creating-an-mvc-client

Очень простой пример будет выглядеть примерно так:

public void ConfigureServices(IServiceCollection services)
{
    // other configuration...

    services.AddAuthentication(options =>
    {
        options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
    })
    .AddCookie()
    .AddOpenIdConnect(options =>
    {
        options.Authority = Configuration["auth:oidc:authority"];
        options.ClientId = Configuration["auth:oidc:clientid"];
    });

    // other configuration...
}

public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
    // other configuration...

    app.UseAuthentication();

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