자동 재인증을 위한 새로운 출처 체험판을 비롯한 FedCM의 몇 가지 업데이트를 소개합니다.
Federated Credential Management API (FedCM)는 개인 정보 보호 ID 제휴를 위한 웹 API입니다. ID 제휴를 사용하면 RP (신뢰 당사자)가 IdP (ID 공급자)를 사용하여 새 사용자 이름과 비밀번호를 요구하지 않고 사용자에게 계정을 제공할 수 있습니다.
FedCM은 브라우저가 RP와 IdP가 정보를 교환하는 컨텍스트를 이해하고, 공유되는 정보 및 권한 수준을 사용자에게 알리고, 의도하지 않은 악용을 방지할 수 있는 특수 목적 API입니다.
업데이트
Chrome의 FedCM 구현에 몇 가지 업데이트가 있습니다.
- ID 어설션 엔드포인트의 경우 IdP는
Referer
헤더 대신Origin
헤더를 확인하여 값이 클라이언트 ID의 출처와 일치하는지 확인해야 합니다. - 새로운 Chrome 플래그
chrome://flags/#fedcm-without-third-party-cookies
가 추가되었습니다. 이 플래그를 사용하면 서드 파티 쿠키를 차단하여 Chrome에서 FedCM 기능을 테스트할 수 있습니다.
API의 이전 업데이트는 모두 Federated Credential Management API 업데이트를 참고하세요.
FedCM의 최신 버전에는 FedCM을 사용하여 최초 인증 후 다시 방문한 사용자를 자동으로 재인증하는 새로운 자동 재인증 기능이 포함되어 있습니다. 자동 재인증은 Chrome 112부터 오리진 체험판으로 제공됩니다.
자동 재인증
현재 사용자가 FedCM을 통해 RP에서 IdP로 제휴 계정을 만든 후 다음에 웹사이트를 방문할 때는 사용자 인터페이스에서 동일한 단계를 거쳐야 합니다. 즉, 로그인 흐름을 진행하려면 명시적으로 확인하고 다시 인증해야 합니다. FedCM의 주요 목표 중 하나는 은밀한 추적을 방지하는 것이므로 이 사용자 환경 (UX)은 사용자가 제휴 계정을 만들기 전에 적절하지만 사용자가 한 번 거친 후에는 불필요하고 번거로워집니다. 사용자가 RP와 IdP 간의 통신을 허용하도록 권한을 부여한 후에는 이미 이전에 확인한 사항에 대해 또 다른 명시적 사용자 확인을 시행하는 것이 개인 정보 보호나 보안 측면에서 이점이 없습니다. 이에 따라 Chrome에서는 RP가 재방문 사용자를 위해 선택할 수 있는 보다 간소화된 UX를 도입하고 있습니다.
FedCM 자동 재인증(줄여서 '자동 재인증')은 사용자가 FedCM을 사용하여 최초 인증 후 다시 로그인할 때 RP가 선택한 경우 자동으로 사용자를 재인증합니다. 여기서 '초기 인증'은 사용자가 동일한 브라우저 인스턴스에서 FedCM 로그인 대화상자의 '계정으로 계속...' 버튼을 탭하여 계정을 만들거나 RP 웹사이트에 로그인하는 것을 의미합니다.

RP는 autoReauthn: true
를 사용하여 navigator.credentials.get()
를 호출하여 자동 재인증을 요청할 수 있습니다.
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/fedcm.json",
clientId: "1234",
}],
// NOTE: We are exploring different API options to expose this
// functionality here:
// https://github.com/fedidcg/FedCM/issues/429#issuecomment-1426358523
// You should expect that, as a result of the origin trial, we'll
// learn more from developers and browser vendors what works best here.
autoReauthn: true, // default to false
},
});
이 호출을 사용하면 다음과 같은 조건에서 자동 재인증이 실행됩니다.
- FedCM을 사용할 수 있습니다. 예를 들어 사용자가 전역적으로 또는 RP에 대해 FedCM을 사용 중지하지 않았습니다.
- 사용자가 이 브라우저에서 웹사이트에 로그인할 때 FedCM 계정을 하나만 사용했습니다.
- 사용자가 해당 계정으로 IdP에 로그인합니다.
- 지난 10분 이내에 자동 재인증이 이루어지지 않았습니다.
위의 조건이 충족되면 FedCM navigator.credentials.get()
이 호출되는 즉시 사용자를 자동으로 재인증하려는 시도가 시작됩니다.
사용해 보기
Chrome 112 이상에서 Chrome 플래그 chrome://flags#fedcm-auto-re-authn
를 사용 설정하여 로컬에서 FedCM 자동 재인증을 시도할 수 있습니다.
테스트를 위해 브라우저 데이터를 삭제하여 10분의 조용히 기다리는 시간을 재설정할 수 있습니다.
chrome://history
로 이동합니다.- 검색 기록 상자에 RP의 출처를 입력합니다.
- 점 3개 아이콘 ⋮을 클릭하고 기록에서 삭제를 선택합니다.
- Chrome을 다시 시작합니다.
오리진 트라이얼 참여
Chrome 112~Chrome 114에서 제공되는 서드 파티 출처 체험판에 참여하여 웹사이트에서 이 기능을 사용 설정할 수도 있습니다.
오리진 트라이얼을 통해 새로운 기능을 사용해 보고 웹 표준 커뮤니티에 사용성, 실용성, 효과성에 관한 의견을 제공할 수 있습니다. 자세한 내용은 웹 개발자를 위한 오리진 트라이얼 가이드를 참고하세요. 이 오리진 트라이얼 또는 다른 오리진 트라이얼에 가입하려면 등록 페이지를 방문하세요.
서드 파티 원본에 등록하기 위해 기능을 활성화하세요. :
- 오리진 트라이얼 등록 페이지로 이동합니다.
- 등록 버튼을 클릭하고 토큰을 요청하는 양식을 작성합니다.
- 웹 출처로 게재 출처를 입력합니다.
- 다른 출처에 JavaScript로 토큰을 삽입하려면 서드 파티 일치를 선택합니다.
- 제출을 클릭합니다.
- 발급된 토큰을 서드 파티에 삽입합니다.
제3자에 토큰을 삽입하려면 자바스크립트에 다음 코드를 추가합니다. 등록된 웹사이트의 출처에서 제공하는 라이브러리 또는 SDK
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);
TOKEN_GOES_HERE
를 자체 토큰으로 바꿉니다.
참여 및 의견 공유
테스트 중에 의견이 있거나 문제가 발생하면 crbug.com의 Blink>Identity>FedCM 구성요소에서 공유할 수 있습니다.