Spring Security OAuth2 - 구글
- 선행 과정
Spring Security
기본 설정
JWT
기본 설정
Spring Security OAuth2
기본 설정
구글 애플리케이션
- 구글 클라우드 플랫폼에서 새 프로젝트를 생성합니다.
API 및 인증 서비스 -> OAuth 동의 화면
을 선택합니다.
User Type
은 외부를 선택해 구글 계정이 있는 모든 사용자가 접근 가능할 수 있도록 했습니다.
- 앱 정보를 입력합니다.
- 앱 이름이 중복되면 오류가 발생하는 것 같습니다.(불확실)
email
과 profile
만 선택하도록 하겠습니다.
- 다음으로 테스트 사용자를 추가합니다.
- 해당 앱이
테스트
상태라면 여기서 등록한 테스트 사용자만 사용할 수 있습니다.
- 제 경우 현재 테스트 단계이기 때문에 등록해주었습니다.
- 모든 작업이 끝나면 위와 같이 요약본으로 확인할 수 있습니다.
API 및 서비스 -> 사용자 인증 정보 -> 사용자 인증 정보 만들기
를 선택하고 OAuth 클라이언트 ID
를 생성합니다.
- 애플리케이션 유형은 웹 애플리케이션을 선택하고, 이름을 입력합니다.
- 도메인을 입력합니다.
- 현재 테스트 단계이기 때문에 로컬로 진행했습니다.
리디렉션 URI
를 입력합니다.
Spring Security OAuth2
의 redirect uri
템플릿은 {baseUrl}/login/oauth2/code/{registrationId}
이므로 이에 맞 춰서 작성해줍니다.
- 그럼 위와 같이
클라이언트 ID
와 클라이언트 보안 비밀번호
가 발급됩니다.
API 및 서비스 -> 사용자 인증 정보 -> OAuth 2.0 클라이언트 ID
에서 방금 만들었던 OAuth 클라이언트 ID
을 선택해도 확인할 수 있습니다.
application.yml
spring:
security:
oauth2:
client:
registration:
google:
client-id: API 및 서비스 -> 사용자 인증 정보 -> OAuth 2.0 클라이언트 ID -> 클라이언트 ID
client-secret: API 및 서비스 -> 사용자 인증 정보 -> OAuth 2.0 클라이언트 ID -> 클라이언트 보안
scope:
- email
- profile
client
- 네이버 아이디로 로그인 하기 위해 만든 애플리케이션의 정보를 입력합니다.
scope
에 제공 정보로 선택한 항목을 추가합니다.
provider
- 구글의 경우
Spring Security OAuth2
가 provider
에 대한 정보를 가지고 있으므로 작성할 필요가 없습니다.
실행
http://localhost:8080/oauth2/authorization/google
로 요쳥합니다.
- 위와 같이 토큰이 발급되었음을 확인할 수 있습니다.