Gateway 서버에서 OAuth2 및 Keycloak 활용하기

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

이번 강의에서는 Gateway 서버에서 OAuth2 및 Keycloak을 활용한 인증과 권한 부여 과정을 실습합니다. 이 과정을 통해 클라이언트 애플리케이션이 API 요청을 보낼 때 필요한 역할(Role)이 있는지 확인하고, 적절한 권한이 있는 경우에만 요청을 처리할 수 있도록 설정합니다.


단계별 실습

  1. Postman에서 API 요청 테스트:

    • 계정 생성 요청: 먼저, 계정 생성 API를 호출합니다. 여기서 모바일 번호를 변경하여 새로운 계정을 생성합니다.
    • 새로운 액세스 토큰 획득: Postman의 Authorization 탭에서 새로운 액세스 토큰을 획득하고 이를 사용해 API 요청을 보냅니다.
    • 성공적인 응답 확인: 요청이 성공적으로 처리되었음을 확인합니다(HTTP 201 응답).
  2. 권한 부여 테스트 (403 에러 확인):

    • 카드 생성 API 호출: 다음으로, 카드 생성 API를 호출합니다. 이때 클라이언트에 'cards' 역할이 없는 상태이므로, HTTP 403 Forbidden 에러가 발생합니다.
    • Keycloak에서 역할 추가:
      • Keycloak 관리 콘솔에서 Realm Roles로 이동하여 새로운 역할(cards)을 생성합니다.
      • Service Account Roles에서 생성된 역할을 클라이언트에 할당합니다.
    • 새로운 액세스 토큰으로 재요청: 다시 Postman에서 새로운 액세스 토큰을 획득하고 API 요청을 재시도합니다. 이때 성공적인 응답(HTTP 200)을 확인합니다.
  3. 대출 API 테스트:

    • 대출 API 호출: 마찬가지로 대출 API를 호출하여 권한이 없는 상태에서 HTTP 403 에러를 확인합니다.
    • Keycloak에서 역할 추가: 위와 동일하게 대출(Loans) 역할을 생성하고 클라이언트에 할당합니다.
    • 새로운 액세스 토큰으로 재요청: 새로운 액세스 토큰을 획득한 후 API 요청을 재시도하여 성공적인 응답을 확인합니다.

요약

이제 Gateway 서버에서 OAuth2와 Keycloak을 활용하여 인증과 권한 부여를 구현하는 방법을 배웠습니다. 클라이언트 애플리케이션이 특정 역할을 보유한 경우에만 API 요청이 처리되도록 설정할 수 있었습니다. 이 과정에서 다양한 실습을 통해 API 요청의 성공과 실패를 확인하며, 보안 설정이 제대로 작동하는지 검증했습니다.

감사합니다. 이로써 클라이언트 자격 증명 부여 흐름(Client Credentials Grant Type Flow)에 대한 실습을 마무리합니다. 다음 강의에서 뵙겠습니다. 안녕히 계세요!

profile
무슨 생각하며 사니

0개의 댓글