Keycloak에서 액세스 토큰을 얻는 방법

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

이번 강의에서는 클라이언트 애플리케이션이 Keycloak 인증 서버에 연결하여 액세스 토큰을 얻는 방법을 설명하겠습니다. 이 액세스 토큰을 사용하여 리소스 서버인 게이트웨이 서버에 안전하게 접근할 수 있습니다.


Keycloak에서 액세스 토큰을 얻기 위한 단계

  1. Keycloak에서 엔드포인트 URL 찾기:

    • 클라이언트 애플리케이션은 액세스 토큰을 얻기 위해 Keycloak에서 제공하는 특정 엔드포인트를 호출해야 합니다.
    • Keycloak 관리자 콘솔에 로그인한 후, Realm Settings(Realm 설정)으로 이동합니다.
    • 페이지 하단의 Endpoints(엔드포인트) 섹션에서 OpenID Endpoint Configuration(엔드포인트 설정)을 클릭합니다.
    • 이 페이지에서 클라이언트 애플리케이션이 액세스 토큰을 요청할 수 있는 Token Endpoint URL을 확인할 수 있습니다.
  2. Postman에서 액세스 토큰 요청:

    • Postman을 사용하여 클라이언트 애플리케이션이 액세스 토큰을 요청할 수 있습니다.
    • Postman에서 Microservices 컬렉션 아래 Keycloak 폴더를 생성하고, Client Credentials Access Token이라는 요청을 만듭니다.
    • 엔드포인트 URL을 POST 요청으로 설정하고, 바디에서는 form-url-encoded 옵션을 선택합니다.
  3. 요청 바디 설정:

    • 요청 바디에는 다음과 같은 필드를 포함시켜야 합니다:
      • grant_type: client_credentials로 설정하여 클라이언트 자격 증명 흐름을 사용하고 있음을 알립니다.
      • client_id: 이전 강의에서 설정한 클라이언트 ID를 입력합니다.
      • client_secret: 이전에 생성된 클라이언트 비밀 키를 입력합니다.
      • scope: openid email profile과 같은 범위를 지정하여 클라이언트 애플리케이션이 요청하는 권한을 설정합니다.
  4. 액세스 토큰 요청 및 응답 확인:

    • Send 버튼을 클릭하여 요청을 전송합니다.
    • 응답으로 access_token이 반환됩니다. 추가적으로 ID token도 포함됩니다. 이 토큰은 기본적으로 60초 동안 유효합니다.
  5. JWT 토큰 디코딩 및 분석:

    • JWT 토큰을 분석하기 위해 jwt.io 웹사이트를 사용할 수 있습니다.
    • access_tokenid_token을 각각 복사하여 사이트에 입력하면, 토큰에 포함된 정보를 디코딩하여 확인할 수 있습니다.
    • 여기서 토큰이 언제 만료되는지, 클라이언트 ID는 무엇인지, 어떤 역할과 범위가 설정되어 있는지 등의 정보를 확인할 수 있습니다.

요약 및 다음 단계

이제 Keycloak 인증 서버에서 클라이언트 애플리케이션이 어떻게 액세스 토큰을 얻는지 이해하셨을 것입니다. 실무에서는 이 과정을 Postman 대신 실제 코드에서 구현하게 됩니다. 이 액세스 토큰을 사용하여 리소스 서버에 접근할 수 있으며, 이를 통해 안전한 API 호출이 가능합니다.

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

profile
무슨 생각하며 사니

0개의 댓글