FedCM 업데이트: 데스크톱의 Multi IdP API, Button Mode API, Android용 Chrome용 연속 번들 오리진 트라이얼

Natalia Markoborodova
Natalia Markoborodova

Chrome 128부터 Multi-IdP API가 데스크톱에서 오리진 트라이얼을 시작하고 Button Mode APIContinuation bundle이 Android에서 오리진 트라이얼을 시작합니다. 개발자는 다중 IdP 기능을 사용하여 단일 get() 호출에서 지원되는 여러 ID 공급업체의 배열을 지정할 수 있습니다. Button Mode API는 새 UI를 추가합니다. Button Mode API를 사용하면 ID 제공업체는 사용자가 API 호출 시 활성 IdP 세션이 없는 경우에도 FedCM API를 사용할 수 있습니다. 연속 번들은 Continuation API와 Parameters API로 구성되며, IdP에서 제공하는 권한 대화상자가 포함된 OAuth 승인 흐름과 같은 환경을 지원합니다. 이 번들에는 Fields API, 여러 개의 configURL, 맞춤 계정 라벨과 같은 다른 변경사항도 포함되어 있습니다.

오리진 체험판: 멀티 IdP API

이 기능을 통해 사용자는 지원되는 IdP 집합에서 계정을 선택할 수 있고 RP는 로그인 및 가입률이 더 높아지는 이점을 누릴 수 있습니다. 사용자가 여러 IdP로 로그인한 경우 IdP 중 하나를 사용하여 RP에 로그인하라는 메시지가 표시됩니다.

사용자가 multi-IdP API를 사용하여 다른 IdP로 로그인하고 있습니다.

IdP는 사용자의 기존 계정 및 연결된 타임스탬프를 기반으로 우선순위가 지정됩니다.

  • 사용자가 이전에 특정 IdP로 RP에 로그인한 적이 있는 경우(즉, '재방문자 계정'이 있는 경우) 해당 IdP가 먼저 표시됩니다.
  • 재방문 계정 내에서 IdP는 최근 사용 타임스탬프를 기준으로 추가로 정렬되며, 가장 최근에 사용한 IdP가 목록 상단에 표시됩니다. 경우에 따라 Chrome에 복원된 계정에 대한 타임스탬프 데이터가 없을 수 있습니다. 타임스탬프 로그가 FedCM에 구현되기 전에 사용자가 로그인했기 때문일 수 있습니다. 이러한 계정은 타임스탬프가 있는 계정 아래에 표시됩니다.
  • 사용자가 IdP에 등록된 재방문 계정이 없는 경우 RP가 제공한 순서가 적용됩니다.

FedCM은 개발자가 요청하고 재방문 계정이 하나인 경우 자동 재인증을 허용합니다. 다중 IdP의 경우 여러 IdP에 재계정이 있으면 사용자가 자동으로 재인증되지 않습니다. 재방문 계정이 있는 경우 자동 재인증이 가능합니다. 브라우저가 계정을 명시적으로 인식한 경우에만 브라우저에서 자동 재인증을 시작합니다. 이는 사용자가 이전에 이 RP에서 이 특정 계정으로 FedCM을 사용한 적이 있어야 함을 의미합니다.

사용자의 로그인 상태가 IdP에 대해 로그아웃으로 설정된 경우 FedCM을 호출해도 해당 IdP의 계정이 가져오지 않습니다. 마찬가지로 사용 가능한 모든 IdP에서 로그아웃된 상태인 경우 FedCM 로그인 메시지가 위젯 모드에 자동으로 표시되지 않습니다.

IdP의 브라우저에 저장된 로그인 상태가 로그인되었지만 가져오기 요청에서 이 IdP의 계정이 반환되지 않은 경우(예: 사용자 세션이 만료되었지만 브라우저에서 아직 로그인 상태를 업데이트하지 않은 경우) IdP에 일치하지 않는 UI가 표시되어 사용자가 일치하지 않는 IdP로 로그인하라는 메시지를 표시합니다.

사용자의 로그인 상태가 로그인되어 있지만 세션이 만료된 경우 불일치 UI가 표시됩니다.

로그인 상태에 대한 자세한 내용은 문서를 참고하세요. 구현 세부정보는 개발자 가이드를 참고하세요.

오리진 트라이얼: Multi IdP API

데모 RP의 사용자 또는 Chrome 128 이상을 사용하는 개발자로서 Multi IdP API를 사용해 볼 수 있습니다.

사용자로서 사용해 보기

사용자로서 직접 사용해 보세요. 다음 사항을 확인하세요.

  • Chrome이 chrome://settings/content/federatedIdentityApi 페이지에서 서드 파티 로그인 메시지를 차단하도록 구성되어 있지 않습니다.
  • 여러 데모 IdP에 로그인되어 있습니다. 데모 페이지의 안내를 따르세요.

출처 무료 체험에 등록되지 않은 출처의 사이트에서 멀티 IDP를 사용해 보려면 chrome://flags/#fedcm-multi-idp에서 기능 플래그를 사용 설정해야 합니다.

개발자용 체험해 보기

로그인 제공업체에 RP에 삽입된 JavaScript SDK가 있는 경우(권장) 제공업체에서 여러 IdP를 사용 설정하는 navigator.credentials.get() 호출을 구현할 수 있으며 RP 개발자는 코드를 변경할 필요가 없습니다. 그렇지 않은 경우 RP가 FedCM API를 직접 호출해야 합니다.

RP에서 멀티 ID 공급자를 테스트하려면 다음과 같이 지원되는 제공업체 배열을 지정합니다.

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

결과 객체 내의 configURL 속성은 사용자가 인증한 IdP의 구성 파일 URL을 저장합니다. RP는 결과 token를 처리하는 방법을 결정할 수 있습니다. 이는 IdP에 따라 다르기 때문입니다.

오리진 트라이얼 참여

오리진 트라이얼을 통해 새로운 기능을 사용해 보고 사용성, 실용성, 효과에 관한 의견을 제공할 수 있습니다. 자세한 내용은 출처 무료 체험판 시작하기를 참고하세요.

Chrome 128부터 출처 체험판에 등록하여 다중 IdP 기능을 사용해 볼 수 있습니다.

멀티 IdP를 사용해 보려면 RP가 오리진을 등록하고 퍼스트 파티 오리진 트라이얼을 실행하면 됩니다. 또한 IdP에서 서드 파티 오리진 트라이얼에 등록하고 JavaScript SDK를 사용하는 모든 RP에 다중 IdP 기능을 사용할 수 있습니다.

오리진 트라이얼에 참여하는 단계는 다음과 같습니다.

  1. Multi IdP API 오리진 트라이얼 등록 페이지로 이동합니다.
  2. 등록 버튼을 클릭하고 양식을 작성하여 토큰을 요청합니다.
  3. 퍼스트 파티 오리진 체험판에 등록하려면 '웹 오리진' 입력란에 RP의 오리진을 입력합니다. 서드 파티 출처 체험판의 경우 IdP의 JavaScript SDK 출처를 입력하고 '서드 파티 일치' 체크박스를 선택합니다.
  4. 제출을 클릭합니다.
  5. RP 페이지에서 발급된 토큰을 제공합니다.
    • 퍼스트 파티 오리진 트라이얼 참여자의 경우:
      • <head>의 메타 태그로: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • HTTP 헤더로 사용: Origin-Trial: TOKEN_GOES_HERE
    • 서드 파티 오리진 트라이얼 참여자:
      • 프로그래매틱 방식으로 토큰 제공

Android의 Chrome용 Button Mode API

Chrome 버전 128부터 Button Mode API의 오리진 트라이얼이 Android용 Chrome에서 시작됩니다. 이 트라이얼은 초기 데스크톱 트라이얼에 이어 진행됩니다. Button Mode API를 사용하면 ID 제공업체는 사용자가 API 호출 시 IdP에서 로그아웃한 경우에도 FedCM API를 사용할 수 있습니다. 로그인 흐름은 사용자 동작에 의해 시작되므로 사용자 의도를 더 잘 반영합니다.

Chrome 128에는 IdP가 클라이언트 메타데이터 엔드포인트 응답에 직접 RP의 공식 로고 아이콘을 포함할 수 있는 새로운 기능이 도입되었습니다. 이렇게 하면 버튼 모드의 휴대기기에서 UI가 개선됩니다.

구성 파일의 IdP 브랜딩과 마찬가지로 RP의 아이콘은 IdP에서 구성할 수 있으며 다음과 같이 client_metadata_endpoint 응답에 반환될 수 있습니다.

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
IdP 및 RP의 로고 아이콘
모바일의 공개 UI에 있는 IdP 및 RP의 로고 아이콘

아이콘 지원에 관한 자세한 내용은 개발자 문서를 참고하세요.

사용자가 아직 로그인하지 않은 경우 FedCM은 사용자에게 Chrome 맞춤 탭 (CCT)을 통해 IdP에서 제공하는 login_url를 사용하여 IdP에 로그인하라는 메시지를 표시합니다.

사용자가 모바일에서 버튼 모드를 통해 로그인하고 있습니다.

사용자가 재인증 계정으로 다시 인증하는 경우에는 공개 UI가 표시되지 않습니다.

사용자가 재 계정으로 로그인하고 있습니다. 공개 UI는 표시되지 않습니다.

오리진 트라이얼에 등록하려면 데스크톱의 Button 모드 API 안내를 참고하세요. 데스크톱에서 오리진 트라이얼에 이미 가입했다면 Chrome 128부터 Android용 Chrome에서 이 기능이 자동으로 제공됩니다.

Android용 Chrome 연속 API 번들

Chrome 버전 128부터 Continuation API 번들이 데스크톱에서의 초기 트라이얼에 이어 Android용 Chrome에서 오리진 트라이얼의 일환으로 제공됩니다. 번들은 Continuation API, Parameters API, Fields API, 여러 configURL, 맞춤 계정 라벨을 비롯한 여러 FedCM 기능으로 구성됩니다.

Continuation API를 사용하면 여러 단계로 이루어진 로그인 흐름을 사용할 수 있습니다. Parameters API를 사용하면 IdP에 추가 매개변수를 전달할 수 있습니다. Field API를 사용하면 RP가 FedCM 대화상자의 공개 UI를 위한 특정 계정 속성을 요청할 수 있습니다. 또한 여러 configURL는 IdP의 여러 구성 파일을 지원하며 맞춤 계정 라벨을 사용하면 IdP가 계정에 주석을 추가하여 RP가 이러한 라벨로 계정을 필터링할 수 있습니다.

Continuation API 번들에 관해 자세히 알아보려면 데스크톱의 Continuation API 번들에 관한 블로그 게시물을 참고하세요. 오리진 트라이얼에 등록하려면 이 안내를 따르세요. 이미 데스크톱에서 오리진 트라이얼에 가입했다면 Chrome 128부터 Android용 Chrome에서 이 기능이 자동으로 제공됩니다.

참여 및 의견 공유

의견이 있거나 문제가 발생하면 문제를 신고할 수 있습니다. Google에서는 누적된 업데이트 로그 페이지와 함께 표준 FedCM 개발자 가이드를 최신 상태로 유지할 예정입니다.