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을 통해 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()이 호출되는 즉시 사용자를 자동으로 재인증하려는 시도가 시작됩니다.

사용자가 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. 다른 출처에 JavaScript로 토큰을 삽입하려면 서드 파티 일치를 선택합니다.
  5. 제출을 클릭합니다.
  6. 발급된 토큰을 서드 파티에 삽입합니다.

제3자에 토큰을 삽입하려면 자바스크립트에 다음 코드를 추가합니다. 등록된 웹사이트의 출처에서 제공하는 라이브러리 또는 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 구성요소에서 공유할 수 있습니다.

사진: Unsplash알렉스 페르츠