Проверка подлинности .NET MVC (Razor) с помощью Keycloak - PullRequest
1 голос
/ 09 апреля 2019

мы внедряем новый механизм авторизации в наше существующее .NET-приложение на основе Razor Framework. В качестве провайдера идентификации мы хотим использовать Keycloak , который рекомендовал нам коллега.

Мы следовали инструкциям из этого урока: Учебник для ключей Owin ASP.NET MVC

Мы установили Keycloak и настроили Startup.cs для подготовки приложения к KeycloakAuthentication:

public void ConfigureAuth(IAppBuilder app) {    
    const string persistentAuthType = "keycloak_cookies";
    app.UseCookieAuthentication(new CookieAuthenticationOptions {
                AuthenticationType = persistentAuthType
    });

    app.UseKeycloakAuthentication(new KeycloakAuthenticationOptions {
        Realm = "master",
        ClientId = "eservice",
        ClientSecret = "<<client-Secret>>",
        VirtualDirectory = "",
        KeycloakUrl = "<Keycloak URL>>",
        SignInAsAuthenticationType = persistentAuthType,
        AuthenticationType = persistentAuthType,
        UseRemoteTokenValidation = true,
        DisableAudienceValidation = true, 
        DisableIssuerValidation = true
    });
 }

Конфигурация Keycloak: Keycloak configuration

При запуске приложения мы получаем типичный экран входа Keycloak. Но после входа мы получаем следующее сообщение об ошибке:

[SecurityTokenSignatureKeyNotFoundException: IDX10501: Ошибка проверки подписи. Невозможно сопоставить 'kid': '4385f0fb-2c47-4787-aece-31937e230fd9', токен: '{"alg": "HS256", "typ": "JWT", "kid": "4385f0fb-2c47-4787- aece-31937e230fd9 "} {." JTI ":" 619b6b23-aa0f-40d3-9603-94445db7c763" , "ехр": 1554799904, "НСБ": 0, "IAT": 1554798104, "ИСС": "https: // ...

Кажется, что Keycloak использует алгоритм HS256, но мы определенно настроили RS256 для подписания JWT.

...