ошибка access_denied для пользователя клиента, хотя оценка keycloak говорит: разрешение - PullRequest
0 голосов
/ 16 июня 2020

У меня есть несколько ресурсов, каждый из которых указывает на страницу в приложении. Я использую keycloak (v10.0.2) для аутентификации запросов. У меня есть два пользователя: Admin и Client. Администратор имеет доступ ко всем ресурсам, в то время как Клиент имеет доступ только к нескольким ресурсам. После назначения разрешений для keycloak я проверил консоль и убедился, что разрешения для ресурсов предоставлены так, как я хочу.

Теперь, при доступе к приложению в качестве администратора, все ресурсы доступны как и должно быть. Но когда вы вошли в систему как клиент, логин и пара страниц работают нормально, но остальные не работают с OAuth2AuthenticationProcessingFilter. Ниже приводится сообщение из журналов.

DEBUG o.s.security.web.FilterChainProxy.doFilter - /services/customerAPI/listOfCustomers at position 6 of 12 in additional filter chain; firing Filter: 'OAuth2AuthenticationProcessingFilter'
DEBUG o.s.s.o.p.a.OAuth2AuthenticationProcessingFilter.doFilter - Authentication request failed: error="access_denied", error_description="Invalid token does not contain resource id (ums)"
DEBUG o.s.s.w.h.writers.HstsHeaderWriter.writeHeaders - Not injecting HSTS header since it did not match the requestMatcher org.springframework.security.web.header.writers.HstsHeaderWriter$SecureRequestMatcher@8ff0a24
DEBUG o.s.s.o.p.e.DefaultOAuth2ExceptionRenderer.writeWithMessageConverters - Written [error="access_denied", error_description="Invalid token does not contain resource id (ums)"] as "application/json;charset=UTF-8" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@5adada73]
DEBUG o.s.s.w.c.SecurityContextPersistenceFilter.doFilter - SecurityContextHolder now cleared, as request processing completed

Может ли кто-нибудь помочь мне найти, что я делаю неправильно?

1 Ответ

0 голосов
/ 18 июня 2020

Назначение клиентской роли по умолчанию uma_protection пользователю «Клиент» решило проблему.

...