자동 재인증을 위한 새로운 오리진 트라이얼을 포함한 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을 통해 IdP를 사용하여 RP에 제휴 계정을 만든 후 다음에 웹사이트를 방문할 때 사용자 인터페이스에서 동일한 단계를 거쳐야 합니다. 즉, 로그인 과정을 진행하려면 명시적으로 확인하고 다시 인증해야 합니다. FedCM의 주요 목표 중 하나는 은밀한 추적을 방지하는 것이므로 이러한 사용자 환경 (UX)은 사용자가 제휴 계정을 만들기 전에는 의미가 있지만 사용자가 제휴 계정을 한 번 사용해 본 후에는 불필요하고 번거로워집니다. 사용자가 RP와 IdP 간의 통신을 허용하도록 권한을 부여한 후에는 사용자가 이미 확인한 항목에 대해 또 다른 명시적 사용자 확인을 시행해도 개인 정보 보호 또는 보안상의 이점이 없습니다. 이러한 이유로 Chrome은 RP가 재사용자에게 선택할 수 있는 더 간소화된 UX를 도입하고 있습니다.
FedCM 자동 재인증(줄여서 'auto-reauthn')은 사용자가 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까지 제공되는 서드 파티 오리진 트라이얼에 가입하여 웹사이트에서 이 기능을 사용 설정할 수도 있습니다.
오리진 트라이얼을 통해 새로운 기능을 사용해 보고 웹 표준 커뮤니티에 사용성, 실용성, 효과성에 관한 의견을 제공할 수 있습니다. 자세한 내용은 웹 개발자를 위한 오리진 트라이얼 가이드를 참고하세요. 이 오리진 트라이얼 또는 다른 오리진 트라이얼에 가입하려면 등록 페이지를 방문하세요.
서드 파티 오리진 트라이얼에 등록하고 서드 파티를 통해 기능을 활성화하려면 다음 단계를 따르세요.
- 오리진 트라이얼 등록 페이지로 이동합니다.
- 등록 버튼을 클릭하고 양식을 작성하여 토큰을 요청합니다.
- 제공 출처를 웹 출처로 입력합니다.
- 다른 출처에 자바스크립트와 함께 토큰을 삽입하려면 서드 파티 일치를 확인하세요.
- 제출을 클릭합니다.
- 발급된 토큰을 서드 파티에 삽입합니다.
토큰을 서드 파티에 삽입하려면 등록된 웹사이트의 출처에서 제공되는 자바스크립트 라이브러리 또는 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 구성요소에서 의견을 공유할 수 있습니다.