이 가이드에서는 사용자 승인을 위해 Google ID 서비스 라이브러리를 사용할지 아니면 자체 자바스크립트 라이브러리를 구현할지 선택할 수 있습니다. 웹 애플리케이션에 가장 적합한 OAuth 2.0 승인 흐름을 결정하는 데 도움이 됩니다.
이 가이드를 읽기 전에 개요 및 사용자 승인 작동 방식 가이드에 설명된 용어와 개념을 잘 알고 있다고 가정합니다.
GIS 라이브러리는 사용자 기기의 지원되는 브라우저에서 실행됩니다. Node.js와 같은 서버 측 자바스크립트 프레임워크용이 아닙니다. 대신 Google의 Node.js 클라이언트 라이브러리를 사용합니다.
이 가이드에서는 승인 및 데이터 공유 주제만 다룹니다. 사용자 인증은 검토하지 않습니다. 사용자 가입 및 로그인은 Google 계정으로 로그인 및 Google 로그인에서 이전 가이드를 참고하세요.
GIS 라이브러리가 적합한지 결정하기
Google 라이브러리를 사용할지, 요구사항에 가장 적합하게 라이브러리를 만들지 선택해야 합니다. 특징 개요:
- Google의 Identity Services 자바스크립트 라이브러리는 다음을 구현합니다.
- 리디렉션을 기반으로 한 팝업 기반 동의 흐름으로 사용자가 승인 프로세스 내내 사이트에 머무를 수 있습니다.
- 교차 사이트 요청 위조 (CRSF)와 같은 보안 기능
- 개별 범위를 요청하고 사용자 동의를 확인하는 도우미 메서드입니다.
- 개발 중에 또는 나중에 사이트 방문자를 위해 엔지니어가 사용할 수 있는 사용자 친화적인 오류 처리 및 문서 링크입니다.
- ID 서비스 라이브러리 없이 구현하는 경우 다음을 준수해야 합니다.
- 리디렉션을 포함한 Google OAuth 2.0 엔드포인트로 요청 및 응답 관리
- 사용자 환경 최적화
- 요청 및 응답을 검증하고 CSRF를 방지하기 위한 보안 기능 구현
- 사용자가 요청된 범위에 동의했는지 확인하는 메서드입니다.
- OAuth 2.0 오류 코드 관리, 사람이 읽을 수 있는 메시지 만들기, 사용자 도움말 링크
요약하자면 Google에서는 개발자가 OAuth 2.0 클라이언트를 빠르고 안전하게 구현하고 사용자 승인 환경을 최적화할 수 있도록 GIS 라이브러리를 제공합니다.
승인 흐름 선택
Google ID 서비스 자바스크립트 라이브러리를 사용할지 또는 직접 라이브러리를 만들지에 관계없이 OAuth 2.0 승인 흐름인 암시적 또는 승인 코드 중 하나를 선택해야 합니다.
두 흐름 모두 Google API를 호출하는 데 사용할 수 있는 액세스 토큰이 생성됩니다.
두 흐름의 주요 차이점은 다음과 같습니다.
- 사용자 액션의 수,
- 사용자가 표시되지 않고 앱에서 Google API를 호출할지 여부
- 엔드포인트를 호스팅하고 개별 사용자 계정의 사용자별 갱신 토큰을 저장하는 데 백엔드 플랫폼이 필요한 경우
- 더 높거나 낮은 수준의 사용자 보안.
흐름을 비교하고 보안 요구사항을 평가할 때 고려해야 할 사항은 선택한 보안 수준에 따라 사용자 보안 수준이 달라진다는 것입니다. 예를 들어 캘린더 초대를 읽기 전용으로 보는 것은 Drive에서 파일을 수정하는 데 읽기/쓰기 범위를 사용하는 것보다 위험성이 낮다고 간주될 수 있습니다.
OAuth 2.0 흐름 비교
암시적 흐름 | 승인 코드 흐름 | |
사용자 동의 필요 | 만료된 토큰 교체를 포함한 모든 토큰 요청 | 첫 번째 토큰 요청만 해당됩니다. |
사용자가 있어야 합니다. | 지원됨 | 아니요, 오프라인 사용을 지원합니다. |
사용자 보안 | 최소 | 대부분은 클라이언트 인증이 있으며 브라우저 내 토큰 처리 위험을 방지합니다. |
액세스 토큰 발행됨 | 지원됨 | 지원됨 |
갱신된 토큰 | 아니요 | 지원됨 |
지원되는 브라우저 필요 | 지원됨 | 지원됨 |
Google API를 호출하는 데 사용되는 액세스 토큰 | 사용자의 브라우저에서 실행되는 웹 앱에서만 | 백엔드 플랫폼에서 실행 중인 서버 또는 사용자의 브라우저에서 실행되는 웹 앱에서 가져온 것입니다. |
백엔드 플랫폼 필요 | 아니요 | 예, 엔드포인트 호스팅 및 스토리지에 사용됩니다. |
안전한 저장소 필요 | 아니요 | 예, 토큰 갱신용입니다. |
승인 코드 엔드포인트를 호스팅해야 함 | 아니요 | 예, Google에서 승인 코드를 받습니다. |
액세스 토큰 만료 동작 | 새로운 유효한 액세스 토큰을 요청하고 얻으려면 버튼 누르기 또는 링크 클릭과 같은 사용자 동작이 필요합니다. | 초기 사용자 요청 후 플랫폼은 저장된 갱신 토큰을 교환하여 Google API를 호출하는 데 필요한 유효한 새 액세스 토큰을 얻습니다. |