Chrome 128부터 Multi-IdP API가 데스크톱에서 오리진 트라이얼을 시작하고 Button Mode API와 Continuation bundle이 Android에서 오리진 트라이얼을 시작합니다. 다중 IdP 기능을 사용하면 개발자가 단일 get() 호출에서 지원되는 여러 ID 공급업체의 배열을 지정할 수 있습니다. 버튼 모드 API에 새로운 UI가 추가되었습니다. 버튼 모드 API를 사용하면 ID 제공업체는 API 호출 시 사용자가 활성 IdP 세션이 없더라도 FedCM API를 사용할 수 있습니다. 연속 번들은 IDP 제공 권한 대화상자가 포함된 OAuth 승인 흐름과 유사한 환경을 지원하는 연속 API와 매개변수 API로 구성됩니다. 번들에는 필드 API, 여러 configURL, 맞춤 계정 라벨과 같은 기타 변경사항도 포함됩니다.
오리진 트라이얼: 다중 IdP API
이 기능을 사용하면 사용자가 지원되는 IdP 집합에서 계정을 선택할 수 있으며 RP는 로그인 및 가입률이 높아지는 이점이 있습니다. 사용자가 여러 IdP로 로그인한 경우 IdP 중 하나를 사용하여 RP에 로그인하라는 메시지가 표시됩니다.
IDP는 사용자의 기존 계정과 연결된 타임스탬프를 기반으로 우선순위가 지정됩니다.
- 사용자가 이전에 특정 IdP로 RP에 로그인한 경우('재방문 계정'이 있는 경우) 해당 IdP가 먼저 나열됩니다.
- 반환된 계정 내에서 IdP는 가장 최근 사용의 타임스탬프로 추가 정렬되며, 가장 최근에 사용된 IdP가 목록 상단에 표시됩니다. 경우에 따라 Chrome에 재방문 계정의 타임스탬프 데이터가 없을 수 있습니다. 이는 사용자가 타임스탬프 로그가 FedCM에 구현되기 전에 로그인했기 때문일 수 있습니다. 이러한 계정은 타임스탬프가 있는 계정 아래에 나열됩니다.
- 사용자에게 IDP와 연결된 재방문 계정이 없는 경우 RP에서 제공한 순서가 적용됩니다.
FedCM을 사용하면 개발자가 요청하고 반환되는 계정이 하나인 경우 자동 재인증이 허용됩니다. 다중 IdP의 경우 여러 IdP에 반환되는 계정이 있으면 사용자가 자동으로 다시 인증되지 않습니다. 반환되는 계정이 있는 것은 자동 재인증을 위한 강력한 요구사항입니다. 브라우저는 브라우저가 계정을 명시적으로 인식한 경우에만 자동 재인증을 시작합니다. 이는 사용자가 이 RP에서 이 특정 계정으로 이전에 FedCM을 사용했음을 의미합니다.
사용자의 로그인 상태가 IdP에 대해 로그아웃으로 설정된 경우 FedCM을 호출해도 해당 IdP의 계정이 가져오지 않습니다. 마찬가지로 사용자의 상태가 사용 가능한 모든 IdP에 대해 로그아웃된 경우 위젯 모드에서 FedCM 로그인 프롬프트가 자동으로 표시되지 않습니다.
IdP의 로그인 상태가 브라우저에 로그인으로 저장되었지만 가져오기 요청에서 이 IdP의 계정이 반환되지 않은 경우 (예: 사용자 세션이 만료되었지만 로그인 상태가 아직 브라우저에서 업데이트되지 않은 경우) 불일치 UI가 IdP에 표시되어 사용자에게 불일치 IdP로 로그인하도록 제안합니다.
로그인 상태에 관한 자세한 내용은 문서를 참고하세요. 자세한 구현 내용은 개발자 가이드를 참고하세요.
오리진 트라이얼: 다중 IdP API
데모 RP에서 사용자로 Multi IdP API를 사용해 보거나 Chrome 128 이상을 사용하는 개발자로 사용해 볼 수 있습니다.
사용자로 사용해 보기
사용자로서 직접 사용해 보세요. 다음 사항을 확인하세요.
- 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는 IdP에 따라 다르므로 결과 token를 처리하는 방법을 결정할 수 있습니다.
오리진 트라이얼 참여
오리진 트라이얼을 통해 새로운 기능을 사용해 보고 유용성, 실용성, 효과에 관한 의견을 제공할 수 있습니다. 자세한 내용은 오리진 트라이얼 시작하기를 참고하세요.
Chrome 128부터 시작되는 오리진 트라이얼에 등록하여 다중 IdP 기능을 사용해 볼 수 있습니다.
다중 IdP를 사용해 보려면 RP가 출처를 등록하고 퍼스트 파티 출처 트라이얼을 실행하면 됩니다. IdP가 서드 파티 출처 트라이얼에 등록하고 JavaScript SDK를 사용하여 모든 RP에서 다중 IdP 기능을 사용할 수 있습니다.
오리진 트라이얼에 참여하는 단계는 다음과 같습니다.
- Multi IdP API 오리진 트라이얼 등록 페이지로 이동합니다. 2. 등록 버튼을 클릭하고 양식을 작성하여 토큰을 요청합니다.
- 서드 파티 오리진 트라이얼에 등록하려면 '웹 오리진' 필드에 RP의 오리진을 입력합니다. 서드 파티 출처 트라이얼의 경우 IdP의 JavaScript SDK 출처를 입력하고 '서드 파티 매칭' 체크박스를 선택합니다.
- 제출을 클릭합니다.
- RP 페이지에서 발급된 토큰을 제공합니다.
- 서드 파티 출처 트라이얼 참여자:
-
<head>의 메타 태그:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">- HTTP 헤더:Origin-Trial: TOKEN_GOES_HERE - 서드 파티 오리진 트라이얼 참가자: - 프로그래매틱 방식으로 토큰을 제공합니다.
- 서드 파티 출처 트라이얼 참여자:
-
Android용 Chrome의 버튼 모드 API
Chrome 버전 128부터 Button Mode API의 오리진 트라이얼이 Android용 Chrome에서 시작됩니다. 이는 데스크톱에서 초기 트라이얼이 진행된 후의 일입니다. 버튼 모드 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
}]
아이콘 지원에 대해 자세히 알아보려면 개발자 문서를 참고하세요.
사용자가 아직 로그인하지 않은 경우 FedCM은 Chrome 맞춤 탭 (CCT)을 통해 IdP가 제공하는 login_url를 사용하여 IdP에 로그인하라는 메시지를 사용자에게 표시합니다.
사용자가 돌아온 계정으로 다시 인증하는 경우 공개 UI가 표시되지 않습니다.
오리진 트라이얼에 등록하려면 데스크톱의 버튼 모드 API에 관한 안내를 참고하세요. 데스크톱에서 오리진 트라이얼에 이미 가입한 경우 Chrome 128부터 Android에서 실행되는 Chrome에서 이 기능을 자동으로 사용할 수 있습니다.
Android용 Chrome의 연속 API 번들
Chrome 버전 128부터 Continuation API 번들은 데스크톱에서의 초기 트라이얼에 이어 오리진 트라이얼의 일환으로 Android에서 실행되는 Chrome에서 사용할 수 있습니다. 번들은 Continuation API, Parameters API, Fields API, Multiple configURLs, Custom Account Labels를 비롯한 여러 FedCM 기능으로 구성됩니다.
Continuation API를 사용하면 다단계 로그인 흐름을 사용할 수 있습니다. Parameters API를 사용하면 IdP에 추가 매개변수를 전달할 수 있습니다. 필드 API를 사용하면 RP가 FedCM 대화상자에서 공개 UI에 대한 특정 계정 속성을 요청할 수 있습니다. 또한 다중 configURL는 IdP의 여러 구성 파일을 지원하고 맞춤 계정 라벨을 사용하면 IdP가 계정에 주석을 달아 RP가 이러한 라벨로 계정을 필터링할 수 있습니다.
연속 API 번들에 대해 자세히 알아보려면 데스크톱의 연속 API 번들에 관한 블로그 게시물을 참고하세요. 오리진 트라이얼에 등록하려면 이 안내를 따르세요. 데스크톱에서 이미 오리진 트라이얼에 가입한 경우 Chrome 128부터 Android에서 실행되는 Chrome에서 기능을 자동으로 사용할 수 있습니다.
참여 및 의견 공유
의견이 있거나 문제가 발생하면 문제를 신고할 수 있습니다. 누적된 업데이트 로그 페이지와 함께 표준 FedCM 개발자 가이드가 최신 상태로 유지됩니다.