Firebase 인증
Firebase 인증은 앱에서 사용자 인증 시 필요한 백엔드 서비스와 사용하기 쉬운 SDK, 기성 UI 라이브러리를 제공합니다. 비밀번호, 전화번호, 인기 제휴 ID 공급업체(예: Google, Facebook, Twitter 등)를 통해 인증이 지원됩니다.
Firebase 인증은 여타 Firebase 서비스와 긴밀히 연동하고 OAuth 2.0 및 OpenID Connect 등의 산업 표준을 활용하므로 커스텀 백엔드와 쉽게 통합할 수 있습니다.
Identity Platform을 사용한 Firebase 인증으로 업그레이드하면 다중 인증(MFA), 차단 함수, 사용자 활동 및 감사 로깅, SAML, 일반 OpenID Connect 지원, 멀티테넌시, 엔터프라이즈 수준의 지원과 같은 추가 기능을 사용할 수 있습니다.
주요 기능
Firebase 앱에 대한 사용자 로그인을 처리할 때는 FirebaseUI를 완전 삽입형 인증 솔루션으로 사용하는 방법도 있고 Firebase 인증 SDK를 사용해 하나 이상의 로그인 방법을 앱에 통합하는 방법도 있습니다.
FirebaseUI 인증 | |
---|---|
삽입형 인증 솔루션 |
전체 로그인 시스템을 추가할 때 권장하는 방법입니다. FirebaseUI는 이메일 주소와 비밀번호, 전화번호는 물론 Google 로그인 및 Facebook 로그인 등의 인기 제휴 ID 공급업체를 이용하여 사용자 로그인의 UI 흐름을 처리하는 삽입형 인증 솔루션을 제공합니다. FirebaseUI 인증 구성요소는 휴대기기 및 웹사이트를 통한 인증의 모범 사례를 구현하여 앱의 로그인 및 가입 전환을 극대화합니다. 또한 보안에 민감하고 제대로 처리하기에 오류가 발생하기 쉬운 계정 복구, 계정 연결 등과 같은 특이한 문제도 처리해 줍니다. FirebaseUI는 앱 전체의 시각적인 스타일에 어울리도록 모양을 변경하기가 쉽고 오픈소스이므로 원하는 사용자 환경을 아무런 제약 없이 구현할 수 있습니다. |
Firebase SDK 인증 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
이메일 및 비밀번호 기반 인증 | 이메일 주소와 비밀번호로 사용자를 인증합니다. Firebase 인증 SDK는 사용자의 이메일 주소와 비밀번호를 사용해 로그인을 처리하는 사용자 계정을 생성하고 관리하는 수단을 제공합니다. Firebase 인증은 또한 비밀번호 재설정 이메일 전송도 처리합니다. |
||||||||||
ID 공급업체 통합 | 제휴 ID 공급업체와 통합하여 사용자를 인증합니다. Firebase 인증 SDK는 사용자들이 Google, Facebook, Twitter, GitHub 계정으로 로그인할 수 있는 수단을 제공합니다.
|
||||||||||
전화번호 인증 | 휴대전화로 SMS 메시지를 보내 사용자를 인증합니다. |
||||||||||
커스텀 인증 시스템 통합 |
앱의 기존 로그인 시스템을 Firebase 인증 SDK에 연결하면 Firebase 실시간 데이터베이스와 기타 Firebase 서비스를 이용할 수 있습니다. |
||||||||||
익명 인증 | 임시 익명 계정을 생성하여 사용자들이 로그인하지 않고도 인증할 수 있게 해 주는 기능을 사용하세요. 사용자가 나중에 가입을 결심하면 익명 계정을 일반 계정으로 업그레이드하여 사용자의 이용 내역을 그대로 가져올 수 있습니다. |
Identity Platform을 사용한 Firebase 인증
Identity Platform을 사용한 Firebase 인증은 Firebase 인증에 몇 가지 새로운 기능을 추가하는 업그레이드(선택사항)입니다.
이 업그레이드는 마이그레이션이 필요하지 않습니다. 기존 클라이언트 SDK 및 Admin SDK 코드가 전과 같이 계속 작동하며 향상된 로깅 및 엔터프라이즈급 지원, SLA와 같은 기능에 즉시 액세스할 수 있습니다. 일부 추가 코드를 사용하면 다중 인증, 차단 함수, SAML 및 OpenID Connect 제공업체의 지원을 추가할 수 있습니다.
Identity Platform을 사용한 Firebase 인증은 기본 제품과는 다른 가격 책정 체계를 사용합니다. 업그레이드 시 무료 요금제 (Spark) 프로젝트는 일일 활성 사용자가 3,000명으로 제한되며 사용한 만큼만 지불하는 요금제 (Blaze) 프로젝트는 무료 등급인 50,000명의 월간 활성 사용자 수를 넘으면 사용량에 대한 요금이 부과됩니다. 업그레이드하기 전에 청구 방식이 미치는 영향을 이해해야 합니다.
아래에서 새로운 기능, 가격, 한도에 대해 자세히 알아보세요.
기능
다중 인증(MFA) |
SMS를 통한 다중 인증(MFA)을 사용하면 앱에 보안 레이어가 추가되어 사용자의 데이터를 보호됩니다. |
차단 함수 |
차단 함수를 사용하면 사용자가 앱에 등록하거나 로그인한 결과를 수정하는 커스텀 코드를 실행할 수 있습니다. 차단 함수로 Firebase 인증을 확장하는 방법을 알아보세요. |
SAML 및 OpenID Connect 제공업체 |
SAML(웹만 해당) 및 Firebase에서 기본적으로 지원하지 않는 OpenID Connect 제공업체를 사용한 로그인을 지원합니다. SAML 로그인을 웹 앱에 추가하고 OpenID Connect 로그인을 Apple ,Android, 웹 앱에 추가하는 방법을 알아보세요. |
사용자 활동 및 감사 로깅 |
관리 액세스, 최종 사용자 활동을 모니터링하고 로깅하세요. 프로젝트를 업그레이드하면 Cloud Logging에서 관리자 활동 감사 로그가 자동으로 사용 설정됩니다. Firebase Console의 인증 설정 페이지에서 사용자 활동 로깅을 사용 설정할 수도 있습니다. 로그를 보고 분석하는 방법을 알아보려면 Cloud Logging 문서를 참조하세요. |
앱 체크로 악용 방지 |
앱 체크는 승인되지 않은 클라이언트가 인증 엔드포인트에 액세스하는 것을 방지하여 프로젝트를 악용으로부터 보호해 줍니다. 앱 체크를 사용 설정하는 방법은 앱 체크 문서를 참조하세요. |
멀티테넌시 |
테넌트를 사용하면 단일 프로젝트 내에 사용자 및 구성의 고유한 사일로를 여러 개 만들 수 있습니다. Cloud Identity Platform 문서에서 멀티테넌시 시작하기를 참조하세요. |
엔터프라이즈 지원 및 SLA |
업그레이드 시 Identity Platform 서비스수준계약(SLA)에 따라 인증 서비스에 업타임을 보장하고 엔터프라이즈급 지원을 받을 수 있습니다. |
익명 사용자 자동 정리 |
계정을 만든 지 30일이 지나면 익명 계정이 자동으로 삭제되도록 설정할 수 있습니다. 또한 익명 계정은 더 이상 결제 및 사용 할당량에 포함되지 않습니다. |
사용량 한도
업그레이드할 때 Identity Platform을 사용한 Firebase 인증을 사용하면 Firebase 인증 사용에 새로운 한도가 적용됩니다.
무료(Spark)
무료 (Spark) 요금제의 프로젝트에서는 대부분의 로그인 제공업체에 대해 일일 활성 사용자(DAU)가 3,000명으로 새로 제한됩니다. 일일 활성 사용량은 24시간 동안의 순 사용자 로그인 수를 기준으로 계산됩니다.
제공업체 | 새 한도 | 이전 한도 |
---|---|---|
이메일, 소셜 미디어, 익명, 커스텀 | DAU 3,000명 | 무제한 |
SAML, OpenID Connect | DAU 2명 | 해당 사항 없음 |
사용한 만큼만 지불(Blaze)
Blaze 요금제의 프로젝트 가격은 월간 활성 사용자 수(MAU)를 기준으로 하며 무료 등급 사용자 50,000명을 포함합니다. 활성 사용자는 해당 결제 기간 내에 계정을 사용한 사용자입니다.
제공업체 | 무료 등급 | 무료 등급 초과 시 MAU당 비용($) |
---|---|---|
이메일, 소셜 미디어, 익명, 커스텀 | MAU 0~49,999명 | MAU당 0.0025~0.0055 |
SAML, OpenID Connect | MAU 0~49명 | MAU당 0.015 |
프로젝트 업그레이드
프로젝트를 Identity Platform을 사용한 Firebase 인증으로 업그레이드하려면 Firebase Console의 인증 설정 페이지를 엽니다.
기본 원리
사용자를 앱에 로그인시키려면 우선 사용자에게서 인증 정보를 받아야 합니다. 이 사용자 인증 정보는 사용자의 이메일 주소와 비밀번호일 수도 있고, 제휴 ID 공급업체에서 받은 OAuth 토큰일 수도 있습니다. 그런 다음 이 사용자 인증 정보를 Firebase 인증 SDK로 전달합니다. 그러면 Firebase의 백엔드 서비스가 정보를 확인하여 클라이언트에 응답을 반환합니다.
로그인이 정상적으로 이루어진 후에는 사용자의 기본 프로필 정보에 액세스할 수 있으며 다른 Firebase 제품에 저장된 데이터에 대한 사용자의 액세스 권한을 제어할 수 있습니다. 또한 받은 인증 토큰을 사용해서 자체 백엔드 서비스에서도 사용자의 신원을 확인할 수 있습니다.
구현 경로
FirebaseUI 인증 사용 | ||
---|---|---|
로그인 방법 설정 | 이메일 주소와 비밀번호 로그인, 전화번호 로그인 및 지원할 제휴 ID 공급업체를 통한 로그인은 Firebase Console에서 사용 설정하고 OAuth 리디렉션 URL 설정과 같은 ID 공급업체의 요건에 따라 구성을 완료합니다. | |
로그인 UI 맞춤설정 | FirebaseUI 옵션을 설정하여 로그인 UI를 맞춤설정하거나 GitHub의 코드를 퍼 와서 로그인 경험을 한층 더 맞춤설정할 수 있습니다. | |
FirebaseUI를 통한 로그인 흐름 진행 | FirebaseUI 라이브러리를 가져와서 지원하고자 하는 로그인 방법을 지정하고 FirebaseUI 로그인 흐름을 시작합니다. |
Firebase 인증 SDK 사용 | ||
---|---|---|
로그인 방법 설정 | 이메일 주소와 비밀번호 로그인, 전화번호 로그인 및 지원할 제휴 ID 공급업체를 통한 로그인은 Firebase Console에서 사용 설정하고 OAuth 리디렉션 URL 설정과 같은 ID 공급업체의 요건에 따라 구성을 완료합니다. | |
해당 로그인 방법에 대한 UI 흐름 구현 | 이메일 주소 및 비밀번호를 통한 로그인의 경우 사용자에게 이메일 주소와 비밀번호를 입력하도록 하는 흐름을 구현합니다. 전화번호 로그인의 경우 사용자에게 전화번호를 요청한 후 수신된 SMS 메시지의 코드를 입력하도록 안내하는 흐름을 만듭니다. 제휴 로그인의 경우 각 공급업체의 요건에 따라 흐름을 구현합니다. | |
Firebase 인증 SDK에 사용자 인증 정보 전달 | 사용자의 이메일 주소와 비밀번호, 또는 제휴 ID 공급업체에서 받은 OAuth 토큰을 Firebase 인증 SDK에 전달합니다. |
다음 단계
Firebase 프로젝트의 사용자에 대해 더 알아보고 지원하고자 하는 로그인 공급업체에 대한 통합 가이드를 확인하세요.
어디서부터 시작해야 할지 막막하신가요?