여러 분야의 업계 리더는 모든 사용자에게 뛰어난 환경을 제공하면서 개인 정보를 보호하는 것이 얼마나 중요한지 잘 알고 있습니다. 사용자 환경과 개인 정보 보호에 전념하는 Seznam은 Federated Credential Management (FedCM)를 성공적으로 통합했습니다.
타겟 프로필: FedCM의 이점을 누리는 회사
다양한 도메인의 조직에서 FedCM을 솔루션과 통합했습니다. 제휴 ID 관리를 위한 FedCM의 설계를 고려할 때 ID 제공업체 (IdP)는 개선된 로그인 환경을 제공하는 데 이를 사용하므로 FedCM의 주요 수혜자입니다. 전자상거래 서비스 제공업체와 결제 제공업체(대부분 ID 제공업체 역할도 함)도 FedCM 구현을 통해 사용자 환경을 개선할 기회를 파악했습니다.
Seznam
Seznam은 체코 인구의 90% 에 도달하는 유럽 기술 회사이자 ID 공급업체입니다. 소셜, 지식, 콘텐츠 허브 역할을 합니다. Seznam은 파트너 플랫폼에서 운영되는 온라인 상점의 고객이 Seznam 계정을 사용하여 로그인할 수 있도록 FedCM을 채택했습니다.

FedCM을 통해 Seznam은 파트너 네트워크에서 사용자 로그인 비율을 눈에 띄게 높이고, 사용자 환경을 개선했으며, 서드 파티 쿠키 사용 가능 여부와 관계없이 일관된 ID 흐름을 달성했습니다.
동기
Seznam은 다음과 같은 여러 이점을 인식하여 FedCM을 구현하기로 했습니다.
- FedCM은 최종 사용자를 염두에 두고 설계되어 사용자에게 IdP에 제공되는 정보를 제어할 수 있는 권한을 부여합니다. 이는 사용자에게 안전하고 비공개적인 환경을 제공하고자 하는 Seznam의 비전과 일치합니다.
- FedCM은 OAuth 2.0 표준을 사용하는 Seznam의 기존 로그인 환경과 호환되는 기본 제공 브라우저 기능입니다.
- FedCM은 ID 제휴에 대한 개인 정보 보호 중심 접근 방식으로 설계되었습니다. 예를 들어 사용자가 로그인하기로 선택한 경우에만 사용자가 신뢰 당사자 (RP)를 방문했다는 사실이 IdP와 공유됩니다. 이는 지속 가능한 비즈니스에 대한 Seznam의 견해와 일치합니다.
구현 세부정보
Seznam은 기존 OAuth 솔루션 위에 레이어로 FedCM을 구현했습니다. 이 아키텍처에서는 FedCM 흐름을 사용하여 IdP에서 RP로 OAuth 승인 코드를 안전하게 전송합니다.

구현 노력
Seznam은 FedCM 구현이 간단하며 기존 접근 방식과 일치한다고 강조했습니다. API 연구 및 구현에는 한 달이 걸렸으며 두 명의 개발자가 필요했습니다. FedCM을 프로덕션에 적용하는 데 2개월도 채 걸리지 않았습니다. 이 과정은 반복적이었으며 API를 신중하게 연구하는 데 상당한 시간을 할애했습니다.
도전과제
초기 도입자인 Seznam은 여러 문제를 파악하고 API를 개선하는 데 도움이 되는 귀중한 의견을 제공했습니다.
여러 ID 공급업체 지원
Seznam은 FedCM의 다중 ID 공급업체 지원에 관심이 있었습니다. 이 기능을 통해 사용자가 파트너의 RP에서 Seznam 또는 Google 계정 중에서 선택할 수 있도록 하는 것이 목표였습니다. 하지만 Seznam이 처음 FedCM 구현에 접근했을 때 이 기능은 구현 초기 단계에 있었고 개발자는 오리진 트라이얼에 가입하고 토큰을 사용하여 사용자에게 이 기능을 사용 설정해야 했습니다. 이러한 이유로 Seznam은 Chrome 안정화 버전에서 기능이 제공될 때까지 기다리기로 했습니다.
이 기능은 Chrome 136부터 사용할 수 있으며 개발자는 여러 ID 제공업체에 대한 지원을 구성할 수 있습니다. 예를 들어 Seznam 및 Google ID 공급업체를 모두 지원하기 위해 IdP는 단일 get()
호출에 두 공급업체를 포함할 수 있으며 RP도 독립적으로 이를 수행할 수 있습니다.
// Executed on the RP's side:
const credential = await navigator.credentials.get({
identity: {
providers: [
{
// IdP1: Seznam's config file URL
configURL: 'https://szn.cz/.well-known/web-identity',
clientId: '123',
},
{
// Also allow Google Sign-in
configURL: 'https://accounts.google.com/gsi/fedcm.json',
clientId: '456',
},
],
},
});
Seznam은 이 기능이 솔루션에 포함될 것이라고 밝혔습니다. 또한 FedCM팀은 여러 get()
호출을 지원하여 여러 SDK 지원을 구현하고 있습니다.
비공개 DNS
Seznam은 테스트 단계에서 네트워크 구성과 관련된 문제에 직면했습니다. 테스트 IdP 서버는 비공개 DNS를 통해서만 액세스할 수 있는 비공개 네트워크 내에 있었습니다. 이 설정은 서비스가 공개되기 전 내부 테스트 및 개발 환경에서 흔히 사용됩니다.
하지만 이 설정에는 문제가 있습니다. well-known
파일은 eTLD+1에서 제공되어야 하는데 비공개 개발 도메인은 공개 접미사 목록에 등록되어 있지 않기 때문에 브라우저에서 개발 도메인에 호스팅된 well-known
파일을 가져오는 요청을 보내지 않습니다.
login.idp.example
: 프로덕션 도메인의 예입니다.idp.example/.well-known/web-identity
: 프로덕션의 잘 알려진 파일의 예입니다.login.dev.idp.example
: 개발 도메인의 예입니다.login.dev.idp.example/.well-known/web-identity
: 개발 환경의 잘 알려진 파일의 예입니다.
FedCM 구현이 비공개 도메인에서 호스팅되는 경우 well-known
파일에 대한 브라우저 요청으로 인해 다음 오류가 발생합니다.
The fetch of the well-known file resulted in a network error: ERR_NAME_NOT_RESOLVED
이 오류는 Chrome #fedcm-without-well-known-enforcement
플래그를 사용 설정하여 해결할 수 있습니다. 이 플래그가 사용 설정되면 브라우저는 테스트 목적으로 well-known
파일 가져오기를 건너뜁니다. Chrome에서 테스트 플래그를 사용 설정하는 방법을 알아보세요.
맞춤 정보 공개
Seznam은 FedCM UI의 초기 디자인과 함께 추가 정보를 포함하고 싶다고도 밝혔습니다. 표준 FedCM 대화상자에는 특정 데이터(일반적으로 사용자의 프로필 이미지, 이름, 이메일 주소)가 RP와 공유되고 있다는 고정 메시지가 사용자에게 표시됩니다.
FedCM팀은 의견을 반영하여 사용자에게 표시되는 공개 정보를 맞춤설정할 수 있도록 API를 확장했습니다. 예를 들어 계속하기 기능을 사용하면 IdP가 사용자를 맞춤 페이지로 리디렉션하여 추가 정보나 권한을 요청할 수 있습니다. Chrome 132부터 지원되는 맞춤 매개변수 및 필드 기능을 사용하면 더욱 세부적인 맞춤설정이 가능합니다.

신뢰 당사자 출처 검증
IdP 서버는 수신되는 FedCM 요청에서 Origin
HTTP 헤더의 유효성을 검사하여 요청이 RP가 IdP에 사전 등록한 출처와 일치하는지 확인해야 합니다. 이렇게 하면 FedCM ID 어설션 요청이 client_id
을 사용하는 공격자가 아닌 승인된 RP에서 전송됩니다.
Seznam에는 특이 사례가 있습니다. 파트너 RP가 Seznam에 등록할 때 RP의 출처 데이터를 요청하지 않습니다. 즉, RP의 출처를 확인할 수 없습니다.
Seznam의 FedCM 통합은 기존 OAuth 솔루션을 기반으로 빌드됩니다. 이들은 출처를 확인할 필요 없이 솔루션이 안전하게 유지되도록 RP의 client_id
와 client_secret
를 모두 검증하는 대체 경로를 택했습니다.
ID 공급업체 사용자 대상 도메인
Seznam의 사용자 인증 인프라는 주로 szn.cz
도메인에서 작동하며, 이 도메인에는 FedCM에 필요한 IdP 엔드포인트가 호스팅됩니다. 하지만 주요 기업 ID와 사용자가 서비스를 널리 인식하고 신뢰하는 도메인은 seznam.cz
입니다.
FedCM 대화상자에는 IdP 엔드포인트의 실제 출처 도메인(이 경우 szn.cz
)이 표시됩니다.
seznam.cz
브랜드에 익숙한 사용자는 로그인 과정에서 익숙하지 않은 szn.cz
도메인으로 로그인하라는 메시지가 표시되면 혼란을 느끼고 주저할 수 있습니다.
Chrome 141부터 FedCM은 IdP 구현을 호스팅하는 도메인과 다른 도메인의 표시를 허용하지 않습니다. 이 제한사항은 사용자의 투명성을 보장하기 위한 의도적인 설계 선택입니다. 하지만 FedCM팀은 이 제한으로 인해 발생할 수 있는 문제를 인식하고 잠재적인 조정에 대해 논의하고 있습니다.
영향
이제 Seznam은 FedCM API를 사용하여 파트너의 사용자에게 탭 한 번으로 승인하는 흐름을 제공할 수 있습니다. 이들은 다른 인증 방법과 비교했을 때 FedCM의 UX가 제공하는 이점을 강조했습니다.
Seznam은 FedCM 로그인으로 전환한 웹사이트에서 사용자 참여도가 크게 증가했다고 언급했지만, 다른 요인으로부터 정확한 직접적 영향을 분리하기 위한 포괄적인 분석은 수행하지 않았습니다. FedCM 통합 전에는 동의한 해시 이메일을 사용하여 사용자 식별을 위한 게스트 결제가 허용되었습니다. 이러한 분석을 수행하는 데 있어 어려운 점은 사용자 전환이 FedCM에 기여한 것인지 아니면 사용자가 게스트 결제를 사용하여 구매를 완료한 것인지 추정하는 것이었습니다. Seznam의 가설에 따르면 FedCM의 사용 편의성 개선이 전환율 상승에 기여했을 수 있습니다.
결론
Seznam은 FedCM을 성공적으로 구현하여 기존 OAuth 솔루션과 함께 대체 승인 흐름을 제공합니다. Seznam 개발자는 ID 공급자 지원, 비공개 DNS 설정, 공개 텍스트 맞춤설정, 신뢰 당사자 출처 유효성 검사, 사용자 대상 도메인 표시와 관련된 몇 가지 문제에 직면했지만 API는 구현 이후 성숙해졌습니다. FedCM팀은 Seznam 및 기타 초기 도입자의 의견을 반영하여 이러한 문제를 해결할 수 있는 더 나은 도구를 제공합니다. 다음 단계로 Seznam은 여러 ID 공급업체에 대한 FedCM 지원을 구현할 계획입니다.