이 가이드는 사용자 승인을 위해 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를 호출하는 데 필요한 새로운 유효한 액세스 토큰을 가져옵니다. |