카테고리 없음

클라이언트 요청을 중앙인증서버를 활용하여 인증하는 설정

jw-backend 2024. 7. 25. 01:55
반응형

인증 흐름

  1. 인증 요청:
    • 클라이언트가 /api/** 경로로 요청을 보낼 때, 먼저 중앙 인증 서버에 대한 인증을 수행하도록 설정해야 합니다.
  2. 인증 성공 시 서비스 요청:
    • 인증이 성공하면, 요청을 your-service-url로 전달합니다.

예시 구성

다음은 인증 서버를 통해 인증을 수행한 후, 실제 서비스로 요청을 전달하는 구성 예시입니다.

yaml

spring:
  cloud:
    gateway:
      routes:
      - id: auth_route
        uri: http://your-auth-server-url  # 중앙 인증 서버의 URL
        predicates:
        - Path=/api/**  # 요청 경로 정의
        filters:
        - StripPrefix=1  # 필요 시 경로에서 /api 제거
        - AddRequestHeader=Authorization, Bearer {token}  # Bearer 토큰 추가
        - SetStatus=302  # 인증 후 리다이렉션을 위해 상태 코드 설정

      - id: service_route
        uri: http://your-service-url  # 실제 서비스의 URL
        predicates:
        - Path=/api/**  # 인증이 완료된 후 요청 경로
        filters:
        - StripPrefix=1  # 필요 시 경로에서 /api 제거

설명

  • 첫 번째 라우트 (auth_route):
    • 클라이언트가 /api/** 경로로 요청할 때, 이 요청은 먼저 중앙 인증 서버로 전달됩니다.
    • 인증이 이루어진 후, 필요한 경우 상태 코드를 설정하여 리다이렉션을 할 수 있습니다.
  • 두 번째 라우트 (service_route):
    • 인증이 완료된 후, 요청을 실제 서비스(your-service-url)로 전달합니다.
    • 이 라우트는 인증이 완료된 후에만 활성화되어야 합니다.

인증 성공 후 리다이렉션 처리

위의 예시에서는 인증 후 리다이렉션을 위해 SetStatus=302와 같은 필터를 사용할 수 있습니다. 그러나 인증 성공 여부를 판단하기 위해서는 추가적인 로직이 필요할 수 있습니다. 예를 들어, JWT 토큰의 유효성을 검사하거나, 중앙 인증 서버로부터 인증 성공 응답을 받아야 합니다.

결론

결국, /api/** 경로의 요청이 중앙 인증 서버를 통해 인증된 후, 실제 서비스로 전달되도록 설정하는 것이 중요합니다. 이를 통해 보안성을 높이고, 인증된 사용자만 서비스에 접근할 수 있도록 할 수 있습니다.