Asp.net Core 3.0 с авторизацией Identity Server 4 с проверкой капчи - PullRequest
0 голосов
/ 21 октября 2019

У меня есть приложение SPA на основе Asp.Net Core 3.0 (Angular 8) с Identity Server 4, настроенное и работающее нормально, особенно вход в систему, обновление токена, выход из системы и т. Д.

startup.cs

services.AddIdentityServer()
    .AddDeveloperSigningCredential()
    .AddInMemoryPersistedGrants()
    .AddInMemoryIdentityResources(IdentityServerConfig.GetIdentityResources())
    .AddInMemoryApiResources(IdentityServerConfig.GetApiResources())
    .AddInMemoryClients(IdentityServerConfig.GetClients())
    .AddAspNetIdentity<ApplicationUser>()
    .AddProfileService<ProfileService>();

services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
    .AddIdentityServerAuthentication(options =>
    {
        options.Authority = Configuration["AppSettings:ApplicationUrl"].TrimEnd('/');
        options.SupportedTokens = SupportedTokens.Jwt;
        options.RequireHttpsMetadata = true; 
        options.ApiName = IdentityServerConfig.ApiName;
    }); 

Функция входа на мою угловую страницу использует конечную точку «/ connect / token» с потоком «пароля» владельца ресурса для получения id_token, refresh_token, claims и т. Д.

MyТребуется ввести recaptcha на странице входа в угловое приложение. Я застрял здесь, потому что поток входа обрабатывается сервером идентификации, и нет Authorize контроллера или Signin метода действия для проверки recaptcha перед выдачей токена.

Как я могу проверить recaptcha до аутентификации пользователя.

Есть ли способ переопределить или перехватить метод connect / token в ядре asp.net перед выдачей токена клиенту?

...