개인 정보 보호 ID 제휴를 위한 웹 API입니다.
FedCM이란 무엇인가요?
FedCM (Federated Credential Management)은 사용자가 ID 서비스 또는 사이트와 개인 정보를 공유하지 않고도 사이트에 로그인할 수 있는 제휴 ID 서비스 (예: '...으로 로그인')의 개인 정보 보호 접근 방식입니다.
구현 상태
- Chrome 플랫폼 상태
- FedCM은 Chrome 108에서 제공됩니다.
- FedCM 제안은 공개 토론을 위해 공개되어 있습니다.
- FedCM은 아직 다른 브라우저에서 지원되지 않습니다.
앞으로 ID 공급업체 (IdP), 신뢰 당사자 (RP), 브라우저 공급업체로부터 받은 의견을 바탕으로 여러 가지 새로운 기능을 도입할 예정입니다. ID 공급업체가 FedCM을 채택하기를 바라지만 FedCM은 여전히 개발 중인 API이며 이전 버전과 호환되지 않는 변경사항은 2023년 4분기까지 있을 것으로 예상됩니다.
이전 버전과 호환되지 않는 변경사항을 배포할 때 발생하는 문제를 최소화하기 위해 현재 ID 공급업체를 위한 두 가지 권장사항이 있습니다.
- API가 발전함에 따라 업데이트를 보내드릴 뉴스레터를 구독하세요.
- API가 발전하는 동안 IdP에서는 JavaScript SDK를 통해 FedCM API를 배포하고 자체 호스팅 SDK에서 RP를 사용하지 않도록 하는 것이 좋습니다. 이렇게 하면 모든 신뢰 당사자에게 재배포를 요청하지 않고도 API가 발전함에 따라 IdP가 변경할 수 있습니다.
FedCM이 필요한 이유는 무엇인가요?
지난 10년 동안 ID 제휴는 사이트별 사용자 이름과 비밀번호에 비해 신뢰성, 사용 편의성(예: 비밀번호가 없는 싱글 로그인), 보안 (예: 피싱 및 사용자 인증 정보 스터핑 공격에 대한 저항력 향상) 측면에서 웹 인증의 기준을 높이는 데 핵심적인 역할을 했습니다.
ID 제휴를 사용하면 RP (신뢰 당사자)가 IdP (ID 공급업체)를 통해 새로운 사용자 이름과 비밀번호 없이도 사용자에게 계정을 제공합니다.
안타깝게도 ID 제휴가 사용한 메커니즘 (iframe, 리디렉션, 쿠키)은 웹에서 사용자를 추적하는 데 악용되고 있습니다. 사용자 에이전트는 ID 제휴와 추적을 구분할 수 없으므로 다양한 유형의 악용을 완화하는 조치로 ID 제휴 배포를 더 어렵게 만듭니다.
FedCM(Federated Credential Management API)은 사용자가 IdP에서 계정을 선택하여 웹사이트에 로그인할 수 있는 브라우저 미디에이션 대화상자를 노출하여 웹의 제휴 ID 흐름에 대한 사용 사례별 추상화를 제공합니다.
FedCM은 웹에서의 ID를 개선하기 위한 다단계 여정이며, 첫 번째 단계에서는 서드 파티 쿠키가 제휴 ID에 미치는 단계적 지원 중단의 영향을 줄이는 데 중점을 둡니다 (몇 가지 단계는 로드맵 섹션 참고).
어떤 영향이 있을까요?
Google은 커뮤니티 노력과 연구를 통해 서드 파티 쿠키 단계적 지원 중단의 영향을 받는 몇 가지 ID 제휴 관련 통합이 있음을 알게 되었습니다.
FedCM의 첫 번째 목표는 서드 파티 쿠키가 단계적 폐지로 ID 제휴에 미치는 영향을 줄이는 것입니다. 위 내용은 영향을 받을 것으로 예상되는 영역 목록입니다. 나열되지 않은 추가 사용 사례가 있다면 참여하고 의견을 공유하시기 바랍니다.
FedCM은 누가 사용해야 하나요?
FedCM은 다음 조건이 모두 적용되는 경우에만 유용합니다.
- ID 공급업체 (IdP)
- 서드 파티 쿠키 지원 중단의 영향을 받습니다.
- RP가 서드 파티 사이트입니다. RP가 의미 있게 관련된 사이트인 경우 관련 웹사이트 세트를 사용하는 것이 더 나을 수 있습니다.
IdP인 경우
FedCM을 사용하려면 ID 공급업체의 지원이 필요합니다. 신뢰 당사자는 FedCM을 독립적으로 사용할 수 없습니다. RP인 경우 IdP에 안내를 요청할 수 있습니다.
서드 파티 쿠키 지원 중단의 영향을 받습니다
서드 파티 쿠키의 단계적 지원 중단으로 현재 통합에 영향을 받는 경우에만 FedCM을 사용해야 합니다.
Chrome의 서드 파티 쿠키의 단계적 지원 중단 후에도 ID 제휴가 계속 작동할지 확실하지 않은 경우 Chrome에서 서드 파티 쿠키를 차단하여 웹사이트에 미치는 영향을 테스트할 수 있습니다.
서드 파티 쿠키가 없는 ID 제휴에 영향을 미치지 않으면 FedCM 없이 현재 통합을 계속 사용할 수 있습니다.
무엇을 확인해야 할지 잘 모르겠다면 단계적 중단으로 인해 영향을 받을 것으로 예상되는 알려진 기능에 관해 자세히 알아보세요.
서드 파티 RP
RP가 IdP와 퍼스트 파티 관계인 ID 공급업체인 경우 관련 웹사이트 세트가 더 나은 옵션일 수 있습니다. 관련 웹사이트 세트 (RWS)는 조직에서 사이트 간의 관계를 선언하는 방법으로, 브라우저에서 특정 목적을 위해 제한된 서드 파티 쿠키 액세스를 허용합니다. 이렇게 하면 서드 파티 쿠키가 단계적으로 폐지된 후에도 서드 파티 쿠키가 의미 있게 관련된 사이트 집합 간에 작동할 수 있습니다.
사용자는 FedCM과 어떻게 상호작용하나요?
현재 FedCM의 주요 목표는 서드 파티 쿠키 단계적 지원 중단의 영향을 완화하는 것입니다. 사용자는 Chrome의 사용자 설정에서 FedCM을 사용 설정 또는 중지할 수 있습니다.
FedCM은 프로토콜에 종속되지 않도록 설계되었으며 다음과 같은 인증 관련 기능을 제공합니다.
작동 방식을 알아보려면 데모를 확인하세요.
신뢰 당사자에 로그인
사용자가 신뢰 당사자 (RP) 웹사이트를 방문하면 사용자가 IdP에 로그인하면 FedCM 로그인 대화상자가 표시됩니다.
사용자에게 IdP가 있는 RP의 계정이 없는 경우 RP의 서비스 약관 및 개인정보처리방침과 같은 추가 공개 텍스트가 포함된 가입 대화상자가 표시됩니다(제공된 경우).
사용자는 다음으로 계속...을 탭하여 로그인을 완료할 수 있습니다. 성공하면 브라우저에 사용자가 IdP를 사용하여 RP에 제휴 계정을 만들었다는 정보가 저장됩니다.
RP는 FedCM을 지원하지 않는 브라우저에서 작동합니다. 사용자는 FedCM 이외의 기존 로그인 프로세스를 사용할 수 있어야 합니다. FedCM에서의 로그인 작동 방식에 관해 자세히 알아보세요.
FedCM 사용 또는 사용 중지 설정
사용자는 Android의 Chrome 설정에서 FedCM을 사용 또는 사용 중지할 수 있습니다. 설정 > 사이트 설정 > 서드 파티 로그인으로 이동한 다음 전환 버튼을 변경합니다.
![서드 파티 로그인을 전환하여 모바일의 Chrome 설정에서 FedCM 사용 설정](https://developers.google.cn/static/privacy-sandbox/assets/images/enable-fedcm-chrome-sett-acb36abf28b59.jpg?authuser=5&hl=ko)
데스크톱의 Chrome에서도 chrome://settings/content/federatedIdentityApi
로 이동하여 동일한 작업을 수행할 수 있습니다.
![서드 파티 로그인을 전환하여 데스크톱의 Chrome 설정에서 FedCM 사용 설정](https://developers.google.cn/static/privacy-sandbox/assets/images/enable-fedcm-chrome-sett-ebbf4834f6f21.png?authuser=5&hl=ko)
로드맵
FedCM에 많은 변경사항을 적용하기 위해 노력하고 있습니다.
의견에 따라 이미 여러 업데이트가 적용되었습니다. 또한 적어도 2023년 4분기까지는 안정화를 위해 계속 발전할 것으로 예상됩니다. 자세한 내용은 업데이트를 참조하세요.
- 변경 로그: Federated Credential Management API 업데이트
IdP, RP, 브라우저 공급업체에서 파악된 문제를 비롯해 여전히 조치가 필요한 사항이 몇 가지 있습니다. Google은 이러한 문제의 해결 방법을 알고 있다고 믿습니다.
- 교차 출처 iframe 지원: IdP는 교차 출처 iframe 내에서 FedCM을 호출할 수 있습니다 (업데이트).
- 맞춤설정 버튼: IdP는 IdP 소유의 교차 출처 iframe 내에서 로그인 버튼에 재사용자의 ID를 표시할 수 있습니다 (업데이트).
- 측정항목 엔드포인트: IdP에 성능 측정항목을 제공합니다.
또한 Google에서 평가하거나 프로토타입을 제작하고 있는 특정 제안서를 포함하여 현재 적극적으로 탐색하고 있는 미해결 문제가 있습니다.
- CORS: FedCM 가져오기의 사양을 개선하기 위해 Apple 및 Mozilla와 논의하고 있습니다.
- Multiple-IdP API: Google은 FedCM 계정 선택기에서 공동으로 공존할 수 있도록 여러 IdP를 지원하는 방법을 모색하고 있습니다.
- IdP Sign-in Status API: Mozilla는 타이밍 공격 문제를 확인했으며 Google은 IdP가 사전에 브라우저에 사용자의 로그인 상태를 알리면 이 문제를 완화하는 방법을 모색하고 있습니다. (업데이트)
- IdP API에 로그인: 다양한 시나리오를 지원하기 위해 사용자가 IdP에 로그인하지 않은 경우 브라우저는 사용자가 RP를 벗어나지 않고도 로그인할 수 있는 UI를 제공합니다.
마지막으로, Mozilla, Apple, TAG 검토자의 의견을 바탕으로 아직도 개선이 필요하다고 생각되는 부분이 있습니다. Google에서는 다음과 같은 미해결 질문에 대한 최적의 솔루션을 평가하기 위해 노력하고 있습니다.
- 사용자 이해도 및 일치 의도 개선: Mozilla에서 언급했듯이 Google은 다양한 UX 공식과 노출 영역, 트리거 기준을 계속 모색하고 있습니다.
- ID 속성 및 선택적 공개: TAG 검토자가 언급한 바와 같이 Google은 이메일, 연령대, 전화번호 등 ID 속성 (예: 이메일, 연령대, 전화번호)을 선택적으로 더 많이 또는 더 적게 공유할 수 있는 메커니즘을 제공하려고 합니다.
- 개인 정보 보호 속성 확대: Mozilla가 여기에서 제안한 것처럼 Google은 IdP 무시, 방향성 식별자와 같이 더 나은 개인 정보 보호 보장을 제공하는 메커니즘을 계속 모색하고자 합니다.
- WebAuthn과의 관계: Apple에서 제안한 바와 같이 패스키의 발전 상황을 확인하고 FedCM, Passwords, WebAuthn, WebOTP 간에 일관되고 일관된 환경을 제공하기 위해 노력하게 되어 매우 기쁩니다.
- 로그인 상태: Apple에서 개인 정보 보호 CG의 Login Status API에 제안한 바와 같이 Google은 사용자의 로그인 상태가 브라우저가 정보에 입각한 결정을 내리는 데 도움이 되는 유용한 정보라는 직관을 공유하고 있으며 이를 통해 어떤 기회가 발생할지 기대됩니다. (업데이트)
- 기업 및 교육: FedID CG에서 알 수 있듯이, 전면 채널 로그아웃 (IdP에서 로그아웃을 위해 신호를 RP로 전송하는 기능) 및 SAML 지원과 같이 FedCM에서 잘 지원하지 않는 사용 사례가 여전히 많이 있습니다.
- mDL/VC 등의 관계: Mobile Document Request API 등 FedCM 내에서 어떻게 작동하는지를 파악하기 위해 계속 노력하고 있습니다.
FedCM API 사용
FedCM을 사용하려면 Chrome의 IdP 및 RP 모두에 보안 컨텍스트 (HTTPS 또는 localhost)가 필요합니다.
FedCM과 통합하려면 계정 목록, 어설션 발급 및 선택적으로 클라이언트 메타데이터에 대해 잘 알려진 파일, 구성 파일 및 엔드포인트를 생성해야 합니다. 여기에서 FedCM은 RP가 IdP로 로그인하는 데 사용할 수 있는 JavaScript API를 노출합니다.
FedCM API 사용 방법은 FedCM 개발자 가이드를 참고하세요.
참여 및 의견 공유
- GitHub: 설명서를 읽고 문제를 제기하고 토론을 팔로우합니다.
- 개발자 지원: 개인 정보 보호 샌드박스 개발자 지원 저장소에서 질문하고 토론에 참여하세요.
온라인 개인 정보 보호법 준수
FedCM을 IdP 또는 RP로 사용하려면 사용자의 단말기 장비에 정보를 저장하거나 이미 저장된 정보에 액세스해야 하므로 유럽 경제 지역(EEA) 및 영국의 온라인 개인 정보 보호법에 따라 일반적으로 사용자 동의를 요구하는 활동입니다. FedCM을 사용하는 것이 사용자가 명시적으로 요청한 온라인 서비스를 제공하는 데 반드시 필요한지, 그리고 동의 요건에서 면제되는지 확인하는 것은 개발자의 책임입니다. 자세한 내용은 개인 정보 보호 샌드박스 개인 정보 보호 관련 규정 준수 FAQ를 참고하세요.