Sobes.tech
Back to questions
Middle
5

Расскажите про работу с авторизацией и аутентификацией (Keycloak, JWT)?

Companies where asked
СБК ПАРУС

Answer from AI

sobes.tech AI

Для аутентификации и авторизации часто использую Keycloak в связке с JWT.

Keycloak — это сервер управления идентификацией и доступом, который поддерживает протоколы OAuth2 и OpenID Connect. При успешной аутентификации Keycloak выдает JWT (JSON Web Token), который содержит информацию о пользователе и его правах.

В приложении на C# обычно реализуется middleware, который проверяет JWT в заголовке Authorization каждого запроса. Если токен валиден и не истек, пользователь считается аутентифицированным, и на основе ролей из токена принимаются решения об авторизации.

Пример проверки JWT в ASP.NET Core:

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.Authority = "https://keycloak.example.com/auth/realms/myrealm";
        options.Audience = "my-client-id";
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateAudience = true,
            ValidateIssuer = true
        };
    });

Таким образом, Keycloak берет на себя управление пользователями и выдачу токенов, а приложение просто проверяет их и использует для контроля доступа.