게이트웨이 서버를 리소스 서버로 변환하는 방법

날아올라돼지야·2024년 8월 30일
0

이 강의에서는 게이트웨이 서버를 OAuth2 클라이언트 자격 증명 방식(client credentials grant type flow)을 사용하여 리소스 서버로 변환하는 과정을 설명하겠습니다. 이미 클라이언트와 인증 서버 설정을 완료했으므로, 이제 남은 작업은 게이트웨이 서버를 리소스 서버로 설정하는 것입니다.


단계별 설정 과정

  1. 새 프로젝트 폴더 생성 및 코드 복사:

    • 작업 공간에서 새로운 폴더를 생성하고, 이전 섹션의 코드를 복사하여 붙여넣습니다.
    • 새로운 폴더 이름을 section12로 변경한 후, IntelliJ에서 해당 폴더를 엽니다.
  2. 필요한 종속성 추가:

    • pom.xml 파일을 열고, 다음과 같은 세 가지 종속성을 추가합니다:
      • spring-boot-starter-security: 스프링 시큐리티 프로젝트를 게이트웨이 서버에 추가.
      • spring-security-oauth2-resource-server: 게이트웨이 서버를 OAuth2 리소스 서버로 변환.
      • spring-security-oauth2-jose: JWT 토큰을 사용하기 위한 종속성.
  3. 보안 설정 클래스 생성:

    • com.eazybytes.gatewayserver.config 패키지를 생성하고, SecurityConfig라는 클래스를 만듭니다.
    • 이 클래스에 @Configuration@EnableWebFluxSecurity 어노테이션을 추가하여 스프링 프레임워크에 보안 설정을 알립니다.
    • SecurityWebFilterChain을 반환하는 메서드를 생성하여 보안 필터 체인을 정의합니다.
    • 모든 GET 요청을 permitAll()로 설정하고, accounts, cards, loans 경로에 대해 authenticated()로 설정하여 보호합니다.
    • oauth2ResourceServer() 메서드를 호출하여 JWT 토큰을 사용하도록 설정합니다.
  4. CSRF 보호 비활성화:

    • csrf() 메서드를 호출하여 CSRF 보호를 비활성화합니다. 이 보호 기능은 브라우저가 사용될 때만 필요합니다.
  5. application.yml 파일에 설정 추가:

    • 게이트웨이 서버가 인증 서버와 통신할 수 있도록 application.yml 파일에 다음 속성을 추가합니다:
      spring:
        security:
          oauth2:
            resourceserver:
              jwt:
                jwk-set-uri: http://localhost:7080/realms/master/protocol/openid-connect/certs
    • 이 URL은 리소스 서버가 시작될 때 인증 서버에서 공개 인증서를 다운로드하는 데 사용됩니다.
  6. 빌드 및 테스트 준비:

    • 모든 변경 사항을 저장하고 프로젝트를 빌드합니다.

요약 및 다음 단계

이제 게이트웨이 서버를 OAuth2 클라이언트 자격 증명 방식에서 리소스 서버로 성공적으로 변환했습니다. 이 설정을 통해 게이트웨이 서버는 인증된 클라이언트 애플리케이션에서만 요청을 처리할 수 있습니다. 다음 강의에서는 이 설정이 제대로 작동하는지 테스트해 보겠습니다.

감사합니다, 다음 강의에서 뵙겠습니다. 안녕히 계세요!

profile
무슨 생각하며 사니

0개의 댓글