인증 & 보안

Google OAuth2 적용하기

베꺼 2025. 12. 9. 13:17

* 2025/12/09 기준

구글 클라우드 프로젝트 생성 및 설정

  • 만약 구글 클라우드 프로젝트가 없다면 클라우드 콘솔에서 신규 생성
  • 프로젝트 생성에 시간이 소요될 수 있음
  • BETA 프로젝트와 PROD 프로젝트를 각각 생성하였음

  • 데이터 액세스 탭에서 조회하고자 하는 데이터 설정
  • openid 및 email 추가

  • 클라이언트 탭에서 신규 클라이언트 설정
  • 웹 클라이언트인 경우 도메인과 redirection URI를 입력
    • Spring Security의 경우 기본값은 {baseUrl}/login/oauth2/code/google
  • 클라이언트 생성 후 클라이언트 ID와 secret(보안 비밀번호) 확인

Google ID Token 포맷

{
  "iss": "https://accounts.google.com",
  "azp": "1234987819200.apps.googleusercontent.com",
  "aud": "1234987819200.apps.googleusercontent.com",
  "sub": "10769150350006150715113082367",
  "at_hash": "HK6E_P6Dh8Y93mRNtsDB1Q",
  "hd": "example.com",
  "email": "jsmith@example.com",
  "email_verified": "true",
  "iat": 1353601026,
  "exp": 1353604926,
  "nonce": "0394852-3190485-2490358"
}
  • 기본으로 제공되는 데이터는 aud, exp, iat, iss, sub
  • 상세 설명은 문서 참고
  • email은 고유한 값이 아니며 변동될 수 있으므로 사용자 식별을 위한 고유키는 sub 값을 사용해야 함

Spring Security 설정