Federated Credential Management API 업데이트

Federated Credential Management API는 Chrome 108에서 제공되지만 계속 개선될 것으로 예상됩니다. 계획된 브레이킹 체인지가 없습니다.

이 업데이트는 누구를 대상으로 하나요?

이러한 업데이트는 다음과 같은 경우에 적용됩니다.

  • Federated Credential Management API를 사용하는 IdP입니다.
  • IdP 또는 RP이며 사용 사례에 맞게 API를 확장하는 데 관심이 있는 경우(예: FedID CG 저장소 관련 토론을 관찰하거나 참여했으며 API의 변경사항을 파악하려는 경우).
  • API의 구현 상태를 확인하려는 브라우저 공급업체입니다.

이 API를 처음 사용하거나 아직 실험해 보지 않았다면 Federated Credential Management API 소개를 읽어보세요.

변경 로그

FedCM API 변경사항에 관한 최신 소식은 블로그 또는 뉴스레터를 확인하세요.

Chrome 125 (2024년 4월)

Chrome 123 (2024년 2월)

  • Domain Hint API 지원이 추가되었습니다. Domain Hint API를 사용하면 RP가 FedCM API 호출에 domainHint 속성을 지정하여 사용자와 일치하는 계정만 표시할 수 있습니다.

Chrome 122 (2024년 1월)

  • Disconnect API 지원을 추가했습니다. Disconnect API를 사용하면 RP가 서드 파티 쿠키를 사용하지 않고 IdP 계정에서 사용자 연결을 해제할 수 있습니다.
  • 이제 RP와 IdP가 동일한 사이트이면 /.well-known/web-identity 확인을 건너뜁니다.
  • 이제 하위 리소스가 동일 사이트 로그인 상태를 설정할 수 있습니다.

Chrome 121 (2023년 12월)

  • FedCM 자동 재인증을 트리거하기 위한 완화된 조건은 다음과 같습니다.
    • FedCM의 자동 재인증 기능은 사용자가 돌아올 때만 트리거됩니다. 즉, 사용자가 모든 브라우저 인스턴스에서 FedCM을 사용하여 RP에 로그인해야 자동 재인증이 트리거될 수 있습니다. 이 조건은 처음에 추적기가 ID 공급업체 (IdP)인 것처럼 가장하여 브라우저가 사용자를 모르거나 동의 없이 자동 재인증하도록 속이는 위험을 완화하기 위해 도입되었습니다. 그러나 이 설계는 추적기가 RP 컨텍스트에서 서드 파티 쿠키에 액세스할 수 있는 경우 개인 정보 보호 이점을 보장할 수 없습니다. FedCM은 서드 파티 쿠키를 통해 가능한 기능 중 일부만 제공하므로 추적기가 이미 RP 컨텍스트에서 서드 파티 쿠키에 액세스할 수 있는 경우 FedCM에 액세스해도 개인 정보 보호에 따른 추가적인 위험이 없습니다.
      서드 파티 쿠키를 합법적으로 사용하고 조건을 완화하면 UX가 개선되므로 이 동작이 Chrome 121부터 변경됩니다. Google은 사용자를 재방문으로 취급하도록 조건 제한을 완화하기로 했습니다. RP 컨텍스트에서 IdP에 서드 파티 쿠키를 사용할 수 있는 경우 Chrome은 approved_clients 목록을 통해 지정된 사용자 계정 상태에 대한 IdP의 클레임을 신뢰하고 해당하는 경우 자동 재인증을 트리거합니다. 서드 파티 쿠키는 사용자 설정, 엔터프라이즈 정책, 휴리스틱(Safari, Firefox, Chrome) 및 기타 웹 플랫폼 API (예: Storage Access API)를 통해 사용할 수 있습니다. IdP에서 향후 서드 파티 쿠키 액세스 권한을 상실하더라도 사용자가 이전에 FedCM UI에서 명시적으로 권한을 부여한 적이 없는 경우 (예: 다음으로 계속 버튼 클릭) 해당 사용자는 여전히 신규 사용자로 취급됩니다.
      개발자는 별도의 조치를 취하지 않아도 됩니다. IdP에 서드 파티 쿠키 액세스 권한이 있고 사용자가 이전에 RP에서 계정을 만들었다고 주장하는 경우 이러한 변경으로 인해 자동 재인증 흐름이 더 많이 트리거될 수 있습니다.

Chrome 120 (2023년 11월)

  • Chrome 120에 다음 세 가지 기능에 관한 지원이 추가되었습니다.
    • Login Status API: Login Status API는 웹사이트, 특히 IdP가 사용자의 로그인 상태를 브라우저에 알리는 메커니즘입니다. 이 API를 사용하면 브라우저에서 IdP에 대한 불필요한 요청을 줄이고 잠재적인 타이밍 공격을 완화할 수 있습니다. 로그인 상태 API는 FedCM의 요구사항입니다. 이번 변경으로 서드 파티 쿠키가 차단될 때 더 이상 FedCM을 사용 설정하기 위해 chrome://flags/#fedcm-without-third-party-cookies 플래그가 필요하지 않습니다.
    • Error API: Error API는 IdP에서 제공한 오류 정보가 포함된 브라우저 UI를 표시하여 사용자에게 알립니다.
    • Auto-Selected Flag API: Auto-Selected Flag API는 자동 재인증이 발생하거나 명시적 미디에이션이 발생할 때마다 IdP 및 RP와 함께 계속 버튼을 탭하여 명시적인 사용자 권한을 획득했는지 여부를 공유합니다. IdP 및 RP 통신에 대한 사용자 권한이 부여된 후에만 공유가 이루어집니다.

Chrome 117 (2023년 9월)

Chrome 116 (2023년 8월)

  • Chrome 116에 다음 세 가지 기능에 관한 지원이 추가되었습니다.
    • Login Hint API: 로그인할 기본 사용자 계정을 지정합니다.
    • User Info API: ID 공급업체 (IdP)가 iframe 내에서 맞춤설정된 로그인 버튼을 렌더링할 수 있도록 재사용자의 정보를 가져옵니다.
    • RP Context API: FedCM 대화상자의 '로그인'과 다른 제목을 사용합니다.
  • IdP Sign-In Status API 오리진 트라이얼을 사용할 수 있습니다. 자세한 내용은 FedCM 업데이트: IdP Sign-In Status API, 로그인 힌트 등을 참고하세요.

Chrome 115 (2023년 6월)

  • 사용자가 FedCM을 사용한 최초 인증 후 돌아오면 자동으로 재인증할 수 있는 자동 재인증 지원이 추가되었습니다. 이를 통해 사용자 환경이 개선되고 초기 동의 후 RP에 대한 재인증이 더 간소화됩니다. FedCM 자동 재인증에 관해 자세히 알아보세요.

Chrome 110 (2023년 2월)

  • ID 어설션 엔드포인트의 경우 IdP는 Referer 헤더 대신 Origin 헤더를 확인하여 값이 클라이언트 ID의 출처와 일치하는지 확인해야 합니다.
  • 이제 FedCM에 교차 출처 iframe 지원이 제공됩니다. 삽입자는 삽입된 교차 출처 iframe에서 FedCM API를 허용하도록 Permissions-Policy identity-credentials-get를 지정해야 합니다. 교차 출처 iframe의 를 확인할 수 있습니다.
  • 새로운 Chrome 플래그 chrome://flags/#fedcm-without-third-party-cookies를 추가했습니다. 이 플래그를 사용하면 서드 파티 쿠키를 차단하여 Chrome에서 FedCM 기능을 테스트할 수 있습니다. 자세한 내용은 FedCM 문서를 참조하세요.

Chrome 108 (2022년 10월)

  • 이제 문서에서 '최상위 매니페스트'는 '잘 알려진 파일'이라고 합니다. 구현을 변경하지 않아도 됩니다.
  • 이 문서에서는 'IdP 매니페스트'가 이제 '구성 파일'이라고 합니다. 구현을 변경하지 않아도 됩니다.
  • 'config file'에서 id_token_endpoint의 이름이 id_assertion_endpoint로 변경되었습니다.
  • 이제 IdP에 대한 요청에 Sec-FedCM-CSRF: ?1 헤더 대신 Sec-Fetch-Dest: webidentity 헤더가 포함됩니다.

Chrome 105 (2022년 8월)

  • 문서에 중요한 보안 정보를 추가했습니다. ID 공급업체 (IdP)는 Referer 헤더가 ID 토큰 엔드포인트에 미리 등록된 RP와 일치하는 출처인지 확인해야 합니다.
  • 최상위 매니페스트의 이름이 /.well-known/fedcm.json에서 /.well-known/web-identity로 변경되고 provider_urls에 지정된 URL에는 파일 이름이 포함되어야 합니다.
  • FederatedCredential 인스턴스의 login(), logout(), revoke() 메서드는 더 이상 사용할 수 없습니다.
  • 이제 Federated Credential Management API는 FederatedCredential 대신 새로운 유형 IdentityCredential를 사용합니다. 이는 기능 감지에 사용할 수 있지만 그 외의 경우 눈에 띄는 변화입니다.
  • 로그인 기능을 navigator.credentials.get()FederatedCredential.prototype.login()의 조합에서 navigator.credentials.get()로 이동합니다.
  • 매니페스트의 취소 엔드포인트가 더 이상 적용되지 않습니다.
  • navigator.credentials.get() 호출에는 federated 필드 대신 identity 필드를 사용합니다.
  • url는 이제 configURL이며 navigator.credentials.get() 호출의 경로가 아닌 매니페스트 JSON 파일의 전체 URL이어야 합니다.
  • nonce는 이제 navigator.credentials.get()의 선택적 매개변수입니다.
  • hint는 더 이상 navigator.credentials.get()의 옵션으로 사용할 수 없습니다.
const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/anything.json',
      clientId: '********',
      nonce: '******'
    }]
  }
});
const { token } = credential;

Chrome 104 (2022년 6월)

  • ID 토큰 엔드포인트로 전송된 consent_acquired 매개변수는 이제 disclosure_text_shown입니다. 값이 변경되지 않습니다.
  • IdP 매니페스트의 브랜드 아이콘에서 SVG 이미지 지원이 중단되었지만 더 이상 RP의 콘텐츠 보안 정책에서 허용할 필요가 없습니다.

Chrome 103 (2022년 5월)

  • 데스크톱 환경을 지원합니다.
  • 데스크톱에서 RP별 설정을 지원합니다.
  • 이제 클라이언트 메타데이터 엔드포인트는 선택사항입니다. 이 엔드포인트에서 개인정보처리방침 URL도 선택사항입니다.
  • 문서에서 CSP connect-src 사용에 관한 주의사항을 추가했습니다.

리소스