인증 방식 선택

Cloud Endpoints Frameworks는 다양한 애플리케이션과 사용 사례에 적합한 여러 가지 인증 방법을 지원합니다. Endpoints Frameworks는 주석에 지정된 인증 방법으로 들어오는 요청을 검증한 후 API 백엔드에 전달합니다. 이 문서는 지원되는 각 인증 방법에 대한 개요와 샘플 사용 사례를 제공합니다.

API 키

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

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

짧게 사용되는 토큰 또는 서명된 요청을 사용하고 요청 헤더에서 전송되는 사용자 인증 정보와 달리 클라이언트는 API 키를 쿼리 매개변수로 전송합니다. HTTPS에서 쿼리 매개변수가 암호화되더라도 API 키는 안전하지 않습니다. 예를 들어, 일부 서버는 각 요청의 전체 URL을 일반 텍스트로 서버 로그에 저장할 수 있습니다. 보안을 강화하려면 API 호출에 사용자 데이터가 포함된 경우에 API 키를 단독으로 사용하지 마세요. 다음과 같은 인증 방법 중 하나와 함께 API 키를 사용할 수 있습니다.

API 키를 보호하고 제한을 추가하는 데 대한 권장사항은 API 키 사용을 참조하세요. 'API 키 사용'은 Google API를 사용하는 클라이언트를 타겟으로 하지만 Endpoints Frameworks를 사용하여 만든 API에도 권장사항을 적용할 수 있습니다.

사용 사례

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

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

Firebase 인증

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

Firebase 클라이언트 라이브러리는 사용자가 성공적으로 로그인한 후 개인 키를 사용하여 JSON 웹 토큰(JWT)을 서명합니다. Endpoints Frameworks는 JWT가 Firebase에서 서명되었는지 검증하고, JWT에서 사용자의 Firebase 애플리케이션을 식별하는 'iss'(발급기관) 클레임이 주석의 issuer 설정과 일치하는지 검증합니다.

사용 사례

Firebase 인증은 다른 Firebase 서비스와 긴밀하게 통합되므로, Firebase를 사용하는 모바일 또는 웹 앱에 적합합니다. Firebase Auth로 인증을 참조하세요.

Auth0

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

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

Auth0에서 제공되는 클라이언트 라이브러리는 사용자가 로그인하면 JWT를 생성 및 서명합니다. Endpoints Frameworks는 JWT가 Auth0에서 서명되었는지와 Auth0 애플리케이션을 식별하는 JWT의 'iss' 클레임이 주석의 issuer 설정과 일치하는지를 검증합니다.

사용 사례

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

Google ID 토큰 인증

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

사용 사례

모든 사용자가 Google 계정을 가지고 있는 경우에는 Google ID 토큰을 사용하여 인증을 수행하는 것이 좋습니다. 예를 들어 API에 Google Workspace 애플리케이션과 함께 사용되는 경우(예: Google 드라이브 동반), Google ID 토큰 인증을 사용할 수 있습니다. Google ID 토큰 인증은 사용자가 Google 계정에 로그인하여 인증할 수 있게 해줍니다. 인증된 사용자는 모든 Google 서비스에 액세스할 수 있습니다.

자세한 내용은 Google ID 토큰으로 인증을 참조하세요.

JWT 및 서비스 계정

일반적으로 JSON 웹 토큰(JWT)은 연결된 애플리케이션 간의 클레임 또는 어설션을 공유하는 데 사용됩니다. 서비스 계정을 나타내는 JWT에는 다음 중 한 가지 방법으로 서명할 수 있습니다.

  • 서비스 계정

  • Google의 승인 서비스 (Google의 승인 서비스에서 서명된 JWT를 Google ID 토큰이라고 함)

서비스 계정으로 서명된 JWT를 사용하여 요청을 인증하는 것이 실행하기 더 쉬울 수 있지만 서비스 계정이 많거나 소유하지 않은 서비스 계정에서 사용자 인증 정보를 수락하려는 경우 https://accounts.google.com 또는 accounts.google.com을 모든 서비스 계정의 발급기관으로 허용하면 되기 때문에 Google ID 토큰을 사용하는 것이 좋습니다.

사용 사례

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