FedCM 업데이트: Domain Hint API

Chrome 123부터 도메인 힌트Federated Credential Management API (FedCM). 다음으로 바꿉니다. Domain Hint API를 사용하는 경우 개발자는 수락된 도메인의 제휴 로그인 계정이 표시됩니다.

도메인 힌트 API

FedCM은 사용자가 신뢰할 수 있는 당사자 (RP, (웹사이트 참조) 있습니다. 하지만 RP가 이미 알고 있는 경우 사이트에 로그인할 수 있습니다. 이 특히 기업 시나리오에서 액세스 중인 사이트가 회사 도메인으로 제한됩니다. 더 나은 사용자 경험을 제공하기 위해 FedCM은 API를 사용하면 RP는 RP 이렇게 하면 사용자가 회사 도메인 외부에 있는 계정이며 오류 메시지가 표시되는 경우에만 게재됩니다. 나중에 (또는 로그인이 되지 않은 곳에서 침묵하는 경우) 계정이 사용되지 않았습니다.

RP는 Domain Hint API를 사용하여 FedCM API에서 domainHint 속성을 지정할 수 있습니다. 호출을 사용하여 사용자와 일치하는 계정만 표시합니다. IdP는 domain_hints 속성이 계정 목록에 대한 응답의 일부로 표시됨 엔드포인트에서 계정이 연결된 도메인을 나타냅니다. 이렇게 하면 요청된 도메인 힌트를 공개하지 않고 일치하는 계정을 IdP를 사용합니다

계정 목록 엔드포인트의 JSON 응답 예는 다음과 같습니다. 있습니다.

{
 "accounts": [{
   "id": "1234",
   "given_name": "John",
   "name": "John Doe",
   "email": "john_doe@idp.example",
   "picture": "https://idp.example/profile/123",
   "approved_clients": ["123", "456", "789"],
  }, {
   "id": "5678",
   "given_name": "Johnny",
   "name": "Johnny",
   "email": "johnny@idp.example",
   "picture": "https://idp.example/profile/456"
   "approved_clients": ["abc", "def", "ghi"],
   "domain_hints": ["corp.example"]
  }]
}

RP는 domainHint 속성이 있는 navigator.credentials.get()를 호출하여 다음을 수행할 수 있습니다. 계정을 필터링합니다. 예를 들어 사용자가 corp-partner.example을(를) 방문하고 corp.example의 계정으로 로그인합니다. 사이트는 API를 다음과 같이 호출합니다. 다음과 같습니다.

return await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/manifest.json",
      clientId: "abc",
      nonce: nonce,
      domainHint : "corp.example"
    }]
  }
});

domainHint 값은 계정 목록으로 전송되지 않습니다. 엔드포인트 이는 IdP에 대한 디지털 지문 수집 벡터가 될 수 있기 때문입니다. 대신 Chrome은 평소와 같이 FedCM 요청을 수행하고 계정을 필터링합니다. 로 지정된 domainHint 값과 일치하지 않는 navigator.credentials.get() 호출 그런 다음 Chrome은 사용자에게 새 계정 목록을 표시합니다. 이 접근 방식은 로그인 힌트와 API이지만 이 두 가지는 API는 다양한 질문에 대한 답변을 제공합니다. 로그인 힌트 API는 '이것은 식별자로 만들 수 있고, 도메인 힌트는 계정이 속한 회사야?'라고 묻기도 합니다.

domainHint: "any" 계정이 사용되면 Chrome은 모든 도메인 (domain_hints가 전달되지 않거나 비어 있음) 예를 들어 RP가 가입 시 관리 계정만 허용하는 사용 사례를 허용합니다. 프로세스입니다

domainHint와 일치하는 계정이 없으면 FedCM 대화상자에 로그인 프롬프트가 표시됩니다. 이를 통해 사용자는 있습니다. 사용자가 프롬프트를 탭하면 config에 지정된 로그인 URL 파일을 참고하세요. 링크는 로그인 힌트와 도메인 힌트 쿼리 매개변수가 추가됩니다.

<ph type="x-smartling-placeholder">
</ph> domainHint와 일치하는 계정이 없을 때의 로그인 프롬프트 예.
domainHint과 일치하는 계정이 없을 때의 로그인 프롬프트 예