Spring OAuth2 - как создать сервер авторизации формы AccessToken, когда пользователь входит в систему с другим поставщиком присяги (например, Google, Microsoft и т. Д. c.) - PullRequest
0 голосов
/ 26 марта 2020

У меня проблемы с настройкой Spring Security для удовлетворения моих требований.

Вот моя ситуация.

  1. Сервер авторизации a. поддерживает идентификатор пользователя / логин PWD б. поддерживает вход в Microsoft Azure AD через oauth2. Когда пользователь входит в систему с учетной записью Azure, новый идентификатор пользователя должен быть создан на сервере авторизации и должен генерировать токен доступа (JWT) для использования пользователем для доступа к серверам ресурсов
  2. Несколько серверов ресурсов a. принимает токен доступа (JWT), сгенерированный (1) сервером авторизации, чтобы разрешить / заблокировать доступ к ресурсу

Мне удалось заставить Azure AD oauth работать с нижеприведенным и azure -active- directory-spring-boot-starter.

Но как мне сгенерировать токен доступа, когда пользователь входит в систему с Azure? Прямо сейчас я получаю проблемы с токенами доступа Azure AD, и мои серверы ресурсов не понимают их.

  @Override
  public void configure(final HttpSecurity http) throws Exception {
    // @formatter:off
    http.sessionManagement()
        .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
        .and()
        .authorizeRequests()
        .anyRequest()
        .permitAll()
        .and().formLogin()
        .loginPage("https://sso.company.xyz/login").loginProcessingUrl("/oauth/process")
        .permitAll()
        .and()
        .oauth2Login()
          .userInfoEndpoint()
            .oidcUserService(this.oidcUserService());
...