OAuth2 + Kubernetes + Ingress - PullRequest
       13

OAuth2 + Kubernetes + Ingress

0 голосов
/ 03 сентября 2018

У меня есть микросервисы OAuth2 с методом кода авторизации, развернутые в kubernetes. У меня есть Ingress nginx gateway, где я зарегистрировал пути микросервисов. Как:

"annotations": {
  "ingress.kubernetes.io/secure-backends": "true",
  "ingress.kubernetes.io/ssl-redirect": "false",
  "kubernetes.io/ingress.class": "nginx",
  "nginx.ingress.kubernetes.io/add-base-url": "true",
  "nginx.ingress.kubernetes.io/rewrite-target": "/"
}

    ......


        {
          "path": "/oauth",
          "backend": {
            "serviceName": "oauth2service-service",
            "servicePort": 8090
          }
        },

Внутри микросервиса Oauth2 у меня следующая конфигурация:

@Override
protected void configure(HttpSecurity http) throws Exception {
 http.requestMatchers()
.antMatchers(HttpMethod.GET, "/oauth/login", "/oauth/authorize", "/oauth/token", "/oauth/logout", "/oauth/oauth/login")
.antMatchers(HttpMethod.POST, "/oauth/login", "/oauth/oauth/login")
 .and()
 .authorizeRequests()
 .anyRequest().authenticated()
 .and()
 .formLogin().loginPage("/oauth/login").permitAll()
 .and().logout().deleteCookies("auth_code", "JSESSIONID").invalidateHttpSession(true).logoutSuccessUrl(logoutURL)
 .and().csrf().disable();
 http.authorizeRequests().antMatchers("/oauth/check_token").permitAll();

}

Если я настраиваю вход как:

        {
          "path": "/",
          "backend": {
            "serviceName": "oauth2service-service",
            "servicePort": 8090
          }
        },

Работает с "path": "/", но мне нужно /ouath.

Мне понадобится следующий поток, чтобы правильно запустить мое приложение OAuth2:

/ OAuth / OAuth / авторизовать? Client_id = & response_type = код и сфера = чтение и redirect_uri = https://www.getpostman.com/oauth2/callback

/ oauth / login -> Ошибка: Ошибка сервера OAuth

введите описание изображения здесь

Правильный поток будет:

/ oauth / oauth / authorize? Client_id = & response_type = code & scope = read & redirect_uri = https://www.getpostman.com/oauth2/callback -> GET 302 http code

/ oauth / login -> GET 307 http code

/ oauth / oauth / login -> POST 302 http code

/ oauth / authorize? Client_id = & response_type = code & scope = read & redirect_uri = https://www.getpostman.com/oauth2/callback -> GET 307 http code

/ oauth / oauth / authorize? Client_id = & response_type = code & scope = read & redirect_uri = https://www.getpostman.com/oauth2/callback -> GET 302 http code

/ oauth2 / callback? Code = S9z8Jn -> GET 301 http code

Но я не знаю, как настроить OAuth2 и вход для работы перенаправлений.

Спасибо за ваше время.

...