OAuth2 (Okta): как установить авторизацию - PullRequest
0 голосов
/ 20 октября 2018

Я пишу приложение, используя 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?

Спасибо.

1 Ответ

0 голосов
/ 20 октября 2018

Вы можете добавить группы пользователей к заявке «группы», и стартер Okta Spring Boot автоматически преобразует их в органы безопасности Spring.

В верхнем меню перейдите на API и нажмите Серверы авторизации .

Нажмите на сервер авторизации по умолчанию *.

Нажмите на вкладку Заявки .

Нажмите кнопку Добавить заявку .

Обновите всплывающую форму, чтобы она соответствовалаизображение ниже.

Обратите внимание, что Filter Regex имеет вид. *.

enter image description here

Тогда вы можете использовать @PreAuthorize("role_name") в своих методах.

Эта запись в блоге содержит больше информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...