인증 방식 선택

Cloud Endpoints는 서로 다른 애플리케이션과 사용 사례에 적합한 여러 가지 인증 방법을 지원합니다. 확장 가능 서비스 프록시(ESP)는 서비스 구성에 지정된 인증 방법으로 들어오는 요청을 검증한 후 API 백엔드로 전달합니다. 이 문서는 지원되는 각 인증 방법에 대한 개요와 샘플 사용 사례를 제공합니다.

API 키

API 키는 할당량, 청구, 모니터링 목적으로 Google Cloud 프로젝트를 식별하는 간단한 암호화된 문자열입니다. 개발자는 Cloud Console에서 프로젝트에 API 키를 생성하고 API에 대한 모든 호출에 이 키를 쿼리 매개변수로 포함합니다.

서비스 구성에 API 키 요구 사항을 지정할 경우 ESP는 API 키를 사용해서 API 키가 연결된 Google Cloud 프로젝트를 조회합니다. API 키가 Google Cloud 프로젝트에서 또는 API가 사용 설정된 다른 Google Cloud 프로젝트 내에서 생성되지 않았으면 ESP가 요청을 거부합니다. 자세한 내용은 API 키를 사용하여 API 액세스 제한을 참조하세요.

짧게 사용되는 토큰 또는 서명된 요청을 사용하는 사용자 인증 정보와 달리 API 키는 요청의 일부이므로 중간자 공격에 취약하고 보안성이 낮은 것으로 간주됩니다. 아래 설명된 인증 방법 중 하나와 함께 API 키를 사용할 수 있습니다. 보안을 강화하려면 API 호출에 사용자 데이터가 포함된 경우에는 API 키만 단독으로 사용하지 마세요.

사용 사례

할당량과 같은 Endpoints 기능을 사용하려는 경우, 클라이언트 애플리케이션이 연결된 Google Cloud 프로젝트를 Endpoints가 식별할 수 있도록 각 요청에 API 키를 전달해야 합니다.

API 키에 대한 자세한 내용은 API 키를 사용하는 이유 및 조건을 참조하세요.

Firebase 인증

Firebase 인증은 모바일 또는 웹 앱에 대해 사용자를 인증할 수 있도록 백엔드 서비스, SDK, 라이브러리를 제공합니다. 이 인증은 Google, Facebook, Twitter, GitHub와 같은 다양한 사용자 인증 정보를 사용해서 사용자 인증을 수행합니다.

Firebase 클라이언트 라이브러리는 사용자가 성공적으로 로그인한 후 JSON 웹 토큰(JWT)에 비공개 키로 서명합니다. ESP는 JWT가 Firebase에서 서명되었는지 검증하고 JWT에서 Firebase 애플리케이션을 식별하는 iss(발급자) 클레임이 서비스 구성의 x-google-issuer 설정과 일치하는지 검증합니다.

사용 사례

API 호출에 사용자 데이터가 포함되어 있고 사용자에게 사용자 인터페이스(예: 모바일 및 웹 앱)가 있는 흐름에서 API를 사용하려는 경우 Firebase를 사용하는 것이 좋습니다. 자세한 내용은 Firebase를 사용하여 사용자 인증을 참조하세요.

Auth0

Auth0는 ID 공급업체, 플랫폼, 스택, 기기에 관계없이 애플리케이션과 API를 인증 및 승인합니다.

Auth0는 다수의 공급업체와 보안 보장 마크업 언어 사양을 지원합니다. 또한 웹과 모바일 앱에서 사용자를 인증하기 위한 백엔드 서비스, SDK, 사용자 인터페이스 라이브러리를 제공합니다. Auth0는 일부 타사 ID 공급업체와 통합되며, 커스텀 사용자 계정 관리 기능도 제공합니다.

Auth0가 제공하는 클라이언트 라이브러리는 사용자가 로그인하면 JWT를 생성 및 서명합니다. ESP는 JWT가 Auth0에서 서명되었는지 검증하고 JWT에서 Auth0 애플리케이션을 식별하는 iss 클레임이 서비스 구성의 x-google-issuer 설정과 일치하는지 검증합니다.

사용 사례

Auth0는 소비자와 기업용 웹 및 모바일 앱에 적합합니다. 자세한 내용은 Auth0을 사용하여 사용자 인증을 참조하세요.

Google ID 토큰 인증

Google ID 토큰으로 인증하면 사용자가 Google 계정으로 로그인하여 인증을 수행할 수 있습니다. 인증된 사용자는 모든 Google 서비스에 액세스할 수 있습니다. Google ID 토큰을 사용하여 Google API 및 Endpoints가 관리하는 API를 호출할 수 있습니다. ESP는 공개 키를 사용하여 Google ID 토큰을 검증하고 JWT의 iss 클레임이 https://accounts.google.com인지 확인합니다.

사용 사례

모든 사용자에게 Google 계정이 있는 경우 Google ID 토큰으로 인증하는 것이 좋습니다. 예를 들어 API에 Google 드라이브 컴패니언 등의 Google 애플리케이션이 포함된 경우에 Google ID 토큰 인증을 사용할 수 있습니다. Google ID 토큰 인증을 사용하면 사용자는 Google 계정으로 로그인하여 인증을 수행할 수 있습니다. 인증된 사용자는 모든 Google 서비스에 액세스할 수 있습니다. 자세한 내용은 Google ID 토큰을 사용하여 사용자 인증을 참조하세요.

서비스 계정

API에 요청을 보내는 서비스를 식별하려면 서비스 계정을 사용합니다. 호출하는 서비스는 서비스 계정의 비공개 키를 사용하여 보안 JSON 웹 토큰(JWT)에 서명하고, 서명된 JWT를 요청에 포함하여 API에 보냅니다.

사용 사례

JWT와 서비스 계정은 마이크로서비스에 적합합니다. 자세한 내용은 서비스 간 인증을 참조하세요.

커스텀 인증

다른 인증 플랫폼이 JSON 웹 토큰 RFC 7519를 준수하기만 하면 이 플랫폼을 사용하여 사용자를 인증할 수 있습니다.

자세한 내용은 커스텀 방식을 사용하여 사용자 인증을 참조하세요.