Я пишу приложение, используя Oauth2, используя Okta, и столкнулся с проблемой:
Я хотел бы, чтобы Okta (или другой метод) автоматически настраивалась и предоставляла авторизация данные моего пользователя.У меня уже есть Okta, способная поддерживать аутентификацию пользователя, я специально ищу помощь по авторизации .В частности, я хотел бы разделить авторизацию моих API на 3 сегмента:
1) Группа API, которые доступны любому пользователю, даже не прошедшему аутентификацию.
2) Группа API, которые доступны только для аутентифицированных пользователей.
3) Группа API, которые заблокированы в соответствии с требованиями на основе разрешений (авторизации).
Это третья группа IУ меня проблемы с.Мой контекст безопасности настроен следующим образом:
@Configuration
@EnableOAuth2Sso
public class SecurityConfig extends OAuth2SsoDefaultConfiguration {
public SecurityConfig(ApplicationContext applicationContext) {
super(applicationContext);
}
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/anyaccess/**").permitAll()
.antMatchers("/credential/**").hasRole("ADMIN");
super.configure(http);
http.logout().logoutSuccessUrl("/");
}
}
Таким образом, любой / любой доступ может быть доступен любому, и любой другой, кроме / учетные данные, может быть доступен любому аутентифицированному пользователю.
Когда явойдите в свое приложение через Okta, я получаю объект Authentication and Principal, который, кажется, автоматически генерируется где-то, каким-то образом (именно это где-то, каким-то образом я в основном ищу разъяснения).Однако эти объекты не имеют каких-либо установленных разрешений, и при этом они не предоставляют способ добавления дополнительных разрешений для будущих запросов.Как я могу:
1) настроить эти объекты Аутентификация и Принципал, чтобы они содержали разрешения, которые я хочу для пользователя?
2) Убедитесь, что они установлены автоматически при входе пользователя черезOkta и не требует дополнительного вызова API?
3) Сохранить изменения в этой конфигурации и сделать это частью моей службы авторизации приложений?
4) Есть ли способ, которым я могу управлять этимчерез конфигурацию Okta, или так, мне нужно настроить отдельную службу для управления этим и привязать ее к моей службе аутентификации Okta?
Спасибо.