FedCM 업데이트: 자동 재인증을 위한 오리진 트라이얼

자동 재인증을 위한 새로운 오리진 트라이얼을 포함한 FedCM의 몇 가지 업데이트를 소개합니다.

Federated Credential Management API (FedCM)는 개인 정보 보호 ID 제휴를 위한 웹 API입니다. ID 제휴를 사용하면 RP (신뢰 당사자)가 IdP (ID 공급업체)를 통해 새로운 사용자 이름과 비밀번호 없이도 사용자에게 계정을 제공합니다.

FedCM은 브라우저가 RP 및 IdP가 정보를 교환하는 컨텍스트를 이해하고 공유되는 정보 및 권한 수준에 관해 사용자에게 알리고 의도하지 않은 악용을 방지할 수 있도록 특별히 설계된 API입니다.

업데이트

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: truenavigator.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()가 호출되는 즉시 사용자 자동 재인증 시도가 시작됩니다.

사용자가 FedCM을 사용하여 RP에 자동 재인증하는 경우

사용해 보기

Chrome 112 이상에서 Chrome 플래그 chrome://flags#fedcm-auto-re-authn를 사용 설정하여 FedCM 자동 재인증을 로컬에서 시도할 수 있습니다.

테스트 목적으로 브라우저 데이터를 삭제하여 10분의 대기 기간을 재설정할 수 있습니다.

  1. chrome://history로 이동합니다.
  2. 검색 기록 상자에 RP의 출처를 입력합니다.
  3. 점 3개 아이콘 ⋮을 클릭하고 기록에서 삭제를 선택합니다.
  4. Chrome을 다시 시작합니다.

오리진 트라이얼 참여

Chrome 112부터 Chrome 114까지 제공되는 서드 파티 오리진 트라이얼에 가입하여 웹사이트에서 이 기능을 사용 설정할 수도 있습니다.

오리진 트라이얼을 통해 새로운 기능을 사용해 보고 웹 표준 커뮤니티에 사용성, 실용성, 효과성에 관한 의견을 제공할 수 있습니다. 자세한 내용은 웹 개발자를 위한 오리진 트라이얼 가이드를 참고하세요. 이 오리진 트라이얼 또는 다른 오리진 트라이얼에 가입하려면 등록 페이지를 방문하세요.

서드 파티 오리진 트라이얼에 등록하고 서드 파티를 통해 기능을 활성화하려면 다음 단계를 따르세요.

  1. 오리진 트라이얼 등록 페이지로 이동합니다.
  2. 등록 버튼을 클릭하고 양식을 작성하여 토큰을 요청합니다.
  3. 제공 출처를 웹 출처로 입력합니다.
  4. 다른 출처에 자바스크립트와 함께 토큰을 삽입하려면 서드 파티 일치를 확인하세요.
  5. 제출을 클릭합니다.
  6. 발급된 토큰을 서드 파티에 삽입합니다.

토큰을 서드 파티에 삽입하려면 등록된 웹사이트의 출처에서 제공되는 자바스크립트 라이브러리 또는 SDK에 다음 코드를 추가합니다.

const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);

TOKEN_GOES_HERE를 자체 토큰으로 바꿉니다.

참여 및 의견 공유

의견이 있거나 테스트 중에 문제가 발생하면 crbug.comBlink>Identity>FedCM 구성요소에서 의견을 공유할 수 있습니다.

사진: Alex Perz, Unsplash