Firebase 프로젝트에 인증된 사용자 모드를 적용할 수 있습니다. 적용되면 Firebase AI Logic을 통한 모든 Gemini API 요청은 앱의 인증된 사용자로부터 와야 합니다. 특히 앱의 최종 사용자는 앱에서 Firebase AI Logic에 요청을 보내기 전에 Firebase Authentication을 사용하여 인증해야 합니다. 최종 사용자가 인증되지 않은 경우 요청이 차단됩니다.
요청이 차단되면 응답은 401: unauthenticated 오류가 됩니다.
중요 고려사항
인증된 사용자 모드에 관한 다음 중요 고려사항을 참고하세요.
인증된 사용자 모드가 적용되는 경우
인증된 사용자 모드가 적용되면 다음 사항에 유의하세요.
이 설정은 Firebase AI Logic의 프로젝트 전체 설정입니다.
- 이 내용은 프로젝트에 등록된 모든 앱에 적용됩니다.
- 이 기능은 적용되는 프로젝트에만 적용됩니다.
이 설정은 Firebase Authentication 사용자 인증 정보를 전송하지 않는 Firebase AI Logic를 통한 모든 요청을 차단합니다.
- 사용자는 Firebase AI Logic에 요청을 전송하기 전에 Firebase Authentication를 통해 인증되어야 합니다.
- 이 설정은 Firebase AI Logic를 통해 Gemini Developer API 및 Vertex AI Gemini API에 전송되는 모든 요청에 적용됩니다.
- 이 설정은 서버 프롬프트 템플릿을 사용하는 모든 요청에 적용됩니다.
- 이 설정은 사용자별, API별 또는 템플릿별로 적용할 수 없습니다.
이 설정은 Firebase AI Logic을 통해 Gemini API 요청이 아닌 프로젝트를 차단하지 않습니다.
하이브리드 / 온디바이스를 사용하는 경우:
- 이 설정은 사용자가 인증되지 않은 경우 클라우드 호스팅 모델에 대한 요청을 차단합니다.
- 이 설정은 사용자의 인증 상태와 관계없이 온디바이스 모델에 대한 요청을 차단하지 않습니다.
Gemini Live API를 사용하는 경우:
- 이 설정은 인증된 사용자의 경우에도 Firebase AI Logic를 사용할 때 웹 앱의 Gemini Live API 사용을 차단합니다. 여기에는 Firebase JS SDK를 사용하는 웹 앱 또는 Flutter 웹 앱이 포함됩니다.
Firebase AI Logic REST API를 사용하는 경우:
- 이 설정은 Firebase Authentication 사용자 인증 정보를 전송하지 않는 추론 요청을 차단합니다. 여기에는
templateGenerateContent또는templateStreamGenerateContent과 같은 서버 프롬프트 템플릿 요청이 포함됩니다. - 이 설정은 제어 영역 요청 (예: 템플릿 및 구성 관리 요청)을 차단하지 않습니다. 이러한 요청은 IAM으로 보호되기 때문입니다.
- 이 설정은 Firebase Authentication 사용자 인증 정보를 전송하지 않는 추론 요청을 차단합니다. 여기에는
이 설정은
countTokens(토큰 수 API)에 대한 요청을 차단하지 않습니다.
인증된 사용자 모드를 적용하기 전
인증된 사용자 모드를 적용하기 전에 다음 사항에 유의하세요.
Firebase Authentication를 사용하지 않는 앱의 기존 버전이 있는 경우:
- 이 설정은 기존 앱 버전에서 Firebase AI Logic를 통한 요청을 차단합니다.
- 인증된 사용자 모드를 적용하기 전에 모든 활성 클라이언트가 Firebase Authentication를 사용하도록 업데이트되었는지 확인하세요.
이전 버전의 Flutter 플러그인에서는 요청과 함께 Firebase Authentication 사용자 인증 정보를 보내려면 특수 인스턴스화가 필요합니다.
- 앱에서 Flutter 플러그인
firebase_aiv3.11.0 이하 (BoM v4.12.0 이하)를 사용하고 인스턴스화 중에 Authentication를 전달하지 않는 경우 이 설정은 인증된 사용자의 경우에도 Firebase AI Logic를 통한 요청을 차단합니다. - 인증된 사용자 모드를 적용하기 전에 Flutter의 모든 활성 클라이언트가 최신 버전의 플러그인으로 업데이트되었는지 확인하세요.
- 앱에서 Flutter 플러그인
Firebase Authentication 설정
Firebase Authentication 문서에서는 비밀번호, 전화번호, 인기 제휴 ID 제공업체 (예: Google, Facebook, GitHub) 등을 사용하는 방법을 비롯하여 지원되는 인증 제공업체에 관한 설명과 구현 안내를 제공합니다.
앱에서 Firebase Authentication를 구현하면 앱은 Firebase AI Logic에 대한 모든 요청에서 인증된 사용자의 Firebase Authentication 사용자 인증 정보를 자동으로 전송합니다.
일부 인증 제공업체에 관해서는 다음 사항에 유의하세요.
맞춤 인증: Firebase AI Logic에 대한 요청과 함께 전송할 서명된 인증 토큰을 가져와야 합니다. 자세한 내용은 맞춤 인증을 참고하세요.
익명 또는 이메일/비밀번호 인증 방법: 이러한 사용자는 인증된 사용자로 간주되므로 Firebase AI Logic에 대한 요청이 차단되지 않습니다.
익명 및 이메일/비밀번호 인증 방법을 사용하려면 사용자가 앱을 방문하여 Firebase Authentication 사용자 인증 정보를 만들어야 하지만, 기본적으로 사용자로부터 신원 확인을 요구하지 않기 때문에 강력한 인증 방법은 아닙니다 (특히 유료 리소스를 보호하는 경우). 앱에서 이러한 인증 방법의 기본 구현을 사용하는 경우 인증된 사용자 모드를 적용하더라도 보호 조치가 덜 될 수 있습니다. Firebase App Check를 시행했는지도 확인합니다.
인증된 사용자 모드 설정 관리
인증된 사용자 모드의 설정은 Firebase 콘솔에서 관리합니다.
필수 IAM 권한 및 역할
인증된 사용자 모드 설정을 관리하려면 firebasevertexai.configs.update 권한이 필요하며, 이 권한은 소유자, 편집자, Firebase 관리자, Firebase AI Logic 관리자 등의 IAM 역할에 기본적으로 포함되어 있습니다.
인증된 사용자 모드 적용
Firebase 프로젝트에 인증된 사용자 모드를 적용하는 방법은 다음과 같습니다.
아직 검토하지 않았다면 이 가이드 앞부분에서 인증된 사용자 모드의 중요한 고려사항을 검토하세요.
아직 설정하지 않았다면 앱에서 Firebase Authentication를 설정합니다(이 가이드의 앞부분에 설명되어 있음).
인증된 사용자 모드 적용:
Firebase 콘솔에서 AI 서비스 > AI 로직 > 설정 탭으로 이동합니다.
인증된 사용자 모드에서 인증된 사용자 모드 적용 전환 버튼을 적용됨으로 슬라이드합니다.
확인 대화상자를 검토한 후 확인을 클릭합니다.
인증된 사용자 모드 적용 중지
인증된 사용자 모드 적용을 중지하는 경우 다음 사항에 유의하세요.
- Firebase Authentication 사용자 인증 정보를 전송하지 않는 Firebase AI Logic를 통한 요청이 허용됩니다.
- Firebase AI Logic에 대한 프로젝트 전체 설정입니다.
Firebase 프로젝트에서 인증된 사용자 모드 적용을 중지하는 방법은 다음과 같습니다.
Firebase 콘솔에서 AI 서비스 > AI 로직 > 설정 탭으로 이동합니다.
인증된 사용자 모드에서 인증된 사용자 모드 적용을 사용 중지합니다.
확인 대화상자를 검토한 후 확인을 클릭합니다.