사용자 승인 모델 선택

이 가이드는 사용자 승인을 위해 Google ID 서비스 라이브러리를 사용할지 아니면 자체 JavaScript 라이브러리를 구현할지 선택하는 데 도움이 됩니다. 웹 애플리케이션에 가장 적합한 OAuth 2.0 승인 흐름을 결정하는 데 도움이 됩니다.

이 가이드를 읽기 전에 개요사용자 승인 작동 방식 가이드에 설명된 용어 와 개념을 숙지해야 합니다.

GIS 라이브러리는 사용자의 기기에서 지원되는 브라우저에서 실행됩니다. Node.js와 같은 서버 측 JavaScript 프레임워크와 함께 사용하기 위한 것이 아니므로 대신 Google의 Node.js 클라이언트 라이브러리를 사용하세요.

이 가이드에서는 승인 및 데이터 공유 주제만 다룹니다. 사용자 인증은 검토하지 않으므로 사용자 가입 및 로그인에 관해서는 Google 계정으로 로그인Google 로그인에서 마이그레이션 가이드를 참고하세요.

GIS 라이브러리가 적합한지 결정

Google의 라이브러리를 사용할지 아니면 자체 라이브러리를 만들지 요구사항에 가장 적합한 옵션을 선택해야 합니다. 기능 및 기능 개요:

  • Google의 ID 서비스 JavaScript 라이브러리는 다음을 구현합니다.
    • 리디렉션을 최소화하는 대화상자 기반 동의 흐름으로, 사용자가 승인 프로세스 전반에 걸쳐 사이트에 머무를 수 있습니다.
    • 크로스 사이트 요청 위조 (CRSF)와 같은 보안 기능
    • 개별 범위를 요청하고 사용자 동의를 확인하는 도우미 메서드
    • 개발 중에 엔지니어가 사용하고 나중에 사이트 방문자가 사용할 수 있는 사용자 친화적인 오류 처리 및 문서 링크
  • ID 서비스 라이브러리 없이 구현하는 경우 다음을 담당합니다.
    • 리디렉션을 포함하여 Google의 OAuth 2.0 엔드포인트로 요청 및 응답 관리
    • 사용자 환경 최적화
    • 요청 및 응답을 검증하고 CSRF를 방지하기 위한 보안 기능 구현
    • 사용자가 요청된 범위에 동의했는지 확인하는 메서드
    • OAuth 2.0 오류 코드 관리, 사람이 읽을 수 있는 메시지 만들기, 사용자 도움말 링크

요약하자면 Google은 OAuth 2.0 클라이언트를 빠르고 안전하게 구현하고 사용자의 승인 환경을 최적화하는 데 도움이 되는 GIS 라이브러리를 제공합니다.

승인 흐름 선택

Google ID 서비스 JavaScript 라이브러리를 사용할지 아니면 자체 라이브러리를 만들지 결정하는 것과 관계없이 암시적 또는 승인 코드라는 두 가지 OAuth 2.0 승인 흐름 중 하나를 선택해야 합니다.

두 흐름 모두 Google API를 호출하는 데 사용할 수 있는 액세스 토큰을 생성합니다.

두 흐름의 주요 차이점은 다음과 같습니다.

  • 사용자 작업 수
  • 사용자가 없는 상태에서 앱이 Google API를 호출하는지 여부
  • 엔드포인트를 호스팅하고 개별 사용자 계정의 사용자별 갱신 토큰을 저장하는 데 백엔드 플랫폼이 필요한지 여부
  • 사용자 보안 수준 높음 또는 낮음

흐름을 비교하고 보안 요구사항을 평가할 때 고려해야 할 요소는 선택한 범위에 따라 사용자 보안 수준이 다르다는 점입니다. 예를 들어 캘린더 초대장을 읽기 전용으로 보는 것은 읽기 및 쓰기 범위를 사용하여 Drive에서 파일을 수정하는 것보다 위험이 적다고 볼 수 있습니다.

OAuth 2.0 플로우 비교

암시적 흐름 승인 코드 플로우
사용자 동의 필요 만료된 토큰 교체를 포함한 모든 토큰 요청 첫 번째 토큰 요청에만 해당
사용자가 있어야 함 아니요, 오프라인 사용을 지원합니다.
사용자 보안 최소 최대, 클라이언트 인증이 있고 브라우저 내 토큰 처리 위험을 방지합니다.
액세스 토큰 발급됨
갱신 토큰 발급됨 아니요
지원되는 브라우저 필요
Google API를 호출하는 데 사용되는 액세스 토큰 사용자의 브라우저에서 실행되는 웹 앱에서만 백엔드 플랫폼에서 실행되는 서버 또는 사용자의 브라우저에서 실행되는 웹 앱 에서
백엔드 플랫폼 필요 아니요 예, 엔드포인트 호스팅 및 스토리지에 필요합니다.
보안 스토리지 필요 아니요 예, 갱신 토큰 스토리지에 필요합니다.
승인 코드 엔드포인트 호스팅 필요 아니요 예, Google에서 승인 코드를 수신하려면 필요합니다.
액세스 토큰 만료 동작 새로운 유효한 액세스 토큰을 요청하고 가져오려면 버튼 누르기 또는 링크 클릭과 같은 사용자 동작이 필요합니다. 초기 사용자 요청 후 플랫폼은 저장된 갱신 토큰을 교환하여 Google API를 호출하는 데 필요한 새로운 유효한 액세스 토큰을 가져옵니다.