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

Natalia Markoborodova
Natalia Markoborodova

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

오리진 트라이얼: Multi IdP API

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

<ph type="x-smartling-placeholder">
</ph>
사용자가 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로 로그인하도록 제안합니다.

<ph type="x-smartling-placeholder">
</ph>
사용자의 로그인 상태가 로그인 상태이지만 세션이 만료된 경우 불일치 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에서 다중 IdP를 테스트하려면 다음과 같이 지원되는 제공업체의 배열을 지정합니다.

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 페이지에 발급된 토큰을 제공합니다. <ph type="x-smartling-placeholder">
      </ph>
    • 퍼스트 파티 오리진 트라이얼 참여자: <ph type="x-smartling-placeholder">
        </ph>
      • <head>의 메타 태그로: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • HTTP 헤더로 사용: Origin-Trial: TOKEN_GOES_HERE
    • 서드 파티 오리진 트라이얼 참여자: <ph type="x-smartling-placeholder">
        </ph>
      • 프로그래매틱 방식으로 토큰 제공

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에 로그인하라는 메시지를 표시합니다.

<ph type="x-smartling-placeholder">
</ph>
사용자가 모바일에서 버튼 모드를 통해 로그인하고 있습니다.

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

<ph type="x-smartling-placeholder">
</ph>
사용자가 재 계정으로 로그인하고 있습니다. 공개 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 개발자 가이드를 최신 상태로 유지할 예정입니다.