카카오 로그인을 Firebase Authentication과 연동하려고 조사하다 보면
자연스럽게 이런 의문이 든다.
“Firebase Authentication에 OpenID Connect 제공업체를 직접 추가하면
카카오 로그인도 서버 없이 바로 붙일 수 있는 거 아닌가?”
Firebase 콘솔에도 실제로 ‘새 OIDC 제공업체 정의’ 메뉴가 있고,
카카오 역시 OpenID Connect(OIDC)를 지원한다고 문서에 명시돼 있다.
그럼에도 불구하고,
나는 Firebase Cloud Functions + Custom Token 구조를 선택했다.
이 글은 그 판단을 개념이 아니라 근거 자료를 바탕으로 정리한 기록이다.
1. Firebase Authentication의 OpenID Connect는 무엇을 전제로 하나?
Firebase Authentication에서 제공하는 OpenID Connect(OIDC)는
다음과 같은 상황을 전제로 설계된 기능이다.
“개발자가 직접 통제하는 표준 OIDC 인증 서버를
Firebase Authentication에 외부 인증 제공자로 연결한다.”
이를 위해 Firebase는 OIDC 제공업체에 대해 다음을 요구한다.
- Issuer URL
- /.well-known/openid-configuration (OIDC discovery 문서)
- Authorization / Token / UserInfo endpoint
- 표준 OIDC claim 구조
Firebase 공식 문서에도 다음과 같이 명시되어 있다.
Issuer must be a URL that, when appended with /.well-known/openid-configuration,
is the location of the provider’s OIDC discovery document.
즉, Firebase의 OIDC Provider는
**“표준 OIDC 서버”**를 전제로 한 기능이다.
2. 중요한 전제: 기본 Firebase Authentication은 OIDC를 직접 지원하지 않는다
여기서 한 가지 더 중요한 사실이 있다.
Firebase Authentication의 기본 플랜에서는
OIDC 제공업체 연동이 완전하게 지원되지 않는다.
OIDC 및 SAML 같은 외부 IdP 연동은
Google Identity Platform(유료 업그레이드) 영역에 포함된다.
공식 문서에서도 다음과 같이 구분되어 있다.
Identity Platform includes OpenID Connect (OIDC) and SAML authentication.
즉 정리하면,
- Firebase Authentication (기본) → OIDC 직접 연동 ❌
- Identity Platform 업그레이드 → OIDC 연동 ⭕️
이 시점에서 이미
“OIDC 제공업체를 추가해서 카카오 로그인을 붙인다”는 선택지는
비용과 구조 측면에서 부담이 된다.
3. 그렇다면 카카오 OpenID Connect는 Firebase OIDC Provider로 쓸 수 있을까?
카카오는 분명히 OpenID Connect를 지원한다.
ID Token(JWT)도 발급한다.
하지만 문제는 Firebase가 기대하는 OIDC와 카카오 OIDC 사이의 간극이다.
3-1. 표준 OIDC discovery 문서 문제
Firebase OIDC Provider는
.well-known/openid-configuration을 통한 discovery 문서를 요구한다.
그러나 실제 커뮤니티 사례를 보면,
- 카카오 / 네이버는 표준 discovery 문서를 제공하지 않거나
- Firebase가 기대하는 방식과 완전히 호환되지 않는 경우가 많다.
실제 개발 경험을 정리한 글에서도 다음과 같은 언급이 있다.
카카오/네이버는 OIDC discovery 문서를 제공하지 않아
Firebase OIDC Provider로 바로 연동하기 어렵다.
즉,
“OIDC를 지원한다” = “Firebase OIDC Provider에 바로 붙일 수 있다”
는 의미가 아니다.
4. 웹에서는 가능해 보이는데, iOS 네이티브 앱에서는 왜 문제가 될까?
Firebase OIDC Provider 방식은 기본적으로 리다이렉션 기반 OAuth 흐름이다.
이 방식은 웹에서는 비교적 자연스럽다.
하지만 iOS 네이티브 앱 + 카카오 로그인 환경에서는 다음과 같은 문제가 생긴다.
4-1. 카카오 SDK 기반 네이티브 UX와 충돌
- 카카오 SDK:
- 카카오톡 앱 연동
- 네이티브 로그인 UX
- Firebase OIDC:
- 외부 브라우저 / WebView
- redirect → redirect 기반 흐름
즉, Firebase OIDC를 쓰려면
카카오 SDK를 포기하고 웹 OAuth 흐름으로 돌아가야 한다.
UX 측면에서 받아들이기 어렵다.
4-2. Client Secret 관리 문제
OIDC Provider 설정에는
Client ID / Client Secret이 필요하다.
이 구조는 서버 중심 OAuth를 전제로 한다.
iOS 앱에서 이 흐름을 잘못 구성하면
Client Secret 노출 위험이 커진다.
5. Firebase가 공식적으로 제시하는 대안: Custom Token
Firebase는
자체적으로 제공하지 않는 SNS 로그인에 대해
명확한 대안을 제시하고 있다.
그 구조는 다음과 같다.
- 클라이언트에서 SNS SDK로 로그인
- 서버에서 SNS 토큰 검증
- 서버에서 Firebase Custom Token 발급
- 클라이언트에서 signInWithCustomToken
이 방식은 Firebase 공식 문서에서도 설명되는 정석 패턴이다.
6. 그래서 선택한 구조: Cloud Functions + Custom Token
이 모든 조건을 종합해 선택한 구조는 다음과 같다.
[iOS 앱]
└─ Kakao SDK 로그인
↓ (accessToken 또는 id_token)
[Firebase Cloud Functions]
└─ Kakao 토큰 검증
└─ Firebase Custom Token 생성
↓
[Firebase Authentication]
이 구조의 장점은 명확하다.
- 카카오 SDK 기반 네이티브 UX 유지
- Client Secret은 서버(Functions)에만 존재
- Firebase Authentication 생태계와 완전히 호환
- 카카오 / 네이버 / 다른 SNS로 확장 용이
7. accessToken 방식 → OIDC(JWT) 방식으로의 확장
현재 구현에서는
Kakao accessToken + /v2/user/me API 호출로 토큰을 검증한다.
이 방식은 구현이 단순하고,
end-to-end 흐름을 빠르게 완성할 수 있다.
이후에는 다음과 같은 업그레이드가 가능하다.
- 카카오 OpenID Connect 활성화
- iOS에서 ID Token(JWT) 수신
- Cloud Functions에서 JWT 서명 및 claim 검증
즉,
- ❌ Firebase OIDC Provider를 쓰는 것이 아니라
- ⭕️ Functions 내부에서 OIDC 표준 검증을 수행하는 방식이다.
8. 정리
- Firebase Authentication의 OpenID Connect는
표준 OIDC 서버 연동용 기능이다. - 기본 Firebase Authentication에서는
OIDC 제공업체 연동이 완전하게 지원되지 않는다. - 카카오 OIDC는 존재하지만
Firebase OIDC Provider와 바로 호환되기 어렵다. - iOS 네이티브 앱에서는
Firebase OIDC 리다이렉션 방식이 UX·보안 측면에서 부적합하다. - 따라서 Cloud Functions + Custom Token 구조가
가장 현실적이고 안정적인 선택이다.
한 줄 요약
카카오 로그인을 Firebase Authentication에 연동할 때,
OpenID Connect 제공업체를 직접 추가하는 방식은
웹 실험용으로는 가능할 수 있지만
iOS 네이티브 앱 환경에서는
Cloud Functions + Custom Token 구조가 사실상 정석에 가깝다.
https://realcoding.blog/2025/06/26/firebase-oauth-hybrid-strategy/?utm_source=chatgpt.com
Firebase에 네이버/카카오 OIDC 만들기? 현실은 다르더라
실무에서 배운 개발 노하우와 기술적 인사이트를 공유합니다
realcoding.blog
Firebase auth 에서 OpenID Connect kakao 로 mobile web browser 에서 사용자 로그인 시, native 카카오 앱 띄워서
안녕하세요. 제목에서 처럼 Firebase auth 에서 OpenID Connect kakao 로 사용자 로그인 시 mobile web browser (iOS Safari, aOS Chrome 등) 에서 로그인 redirect flow 가 web 으로 통하지 않고 iOS 또는 aOS native 카카오 앱을
devtalk.kakao.com
'PulseBoard' 카테고리의 다른 글
| Firebase Cloud Functions index.js 완전 해설 (0) | 2025.12.25 |
|---|---|
| Firebase - Functions 의 Index.js 역할 (0) | 2025.12.24 |
| Firebase Functions 초기 환경 설정 해보기 (0) | 2025.12.24 |
| 🔥 Firebase Functions 시작하다가 npm 에러와 경고를 만났을 때 정리 (0) | 2025.12.24 |
| 카카오 OpenID Connect를 써도 Firebase Custom Token이 필요한 이유 (0) | 2025.12.24 |