Spring Security OAuth2 - 구글

appti·2022년 5월 28일
1

Spring Security OAuth2 - 구글

  • 선행 과정
    • Spring Security 기본 설정
    • JWT 기본 설정
    • Spring Security OAuth2 기본 설정

구글 애플리케이션

  • 구글 클라우드 플랫폼에서 새 프로젝트를 생성합니다.

  • API 및 인증 서비스 -> OAuth 동의 화면을 선택합니다.
  • User Type은 외부를 선택해 구글 계정이 있는 모든 사용자가 접근 가능할 수 있도록 했습니다.

  • 앱 정보를 입력합니다.
    • 앱 이름이 중복되면 오류가 발생하는 것 같습니다.(불확실)

  • 개발자 연락처 정보를 입력합니다.

  • 범위를 추가합니다.

  • emailprofile만 선택하도록 하겠습니다.

  • 다음으로 테스트 사용자를 추가합니다.
  • 해당 앱이 테스트 상태라면 여기서 등록한 테스트 사용자만 사용할 수 있습니다.
  • 제 경우 현재 테스트 단계이기 때문에 등록해주었습니다.

  • 모든 작업이 끝나면 위와 같이 요약본으로 확인할 수 있습니다.

  • API 및 서비스 -> 사용자 인증 정보 -> 사용자 인증 정보 만들기를 선택하고 OAuth 클라이언트 ID를 생성합니다.

  • 애플리케이션 유형은 웹 애플리케이션을 선택하고, 이름을 입력합니다.

  • 도메인을 입력합니다.
  • 현재 테스트 단계이기 때문에 로컬로 진행했습니다.

  • 리디렉션 URI를 입력합니다.
    • Spring Security OAuth2redirect 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 OAuth2provider에 대한 정보를 가지고 있으므로 작성할 필요가 없습니다.

실행

  • http://localhost:8080/oauth2/authorization/google로 요쳥합니다.

  • 계정 로그인 또는 계정을 선택합니다.

  • 위와 같이 토큰이 발급되었음을 확인할 수 있습니다.
profile
안녕하세요

0개의 댓글