ChromeOS의 SAML 인증

기본적으로 Google의 외부에서 액세스 가능한 계정 서비스는 Google 계정의 인증을 처리합니다. 인증되지 않은 사용자가 인증이 필요한 Google 페이지를 방문하면 Google 로그인 양식에서 사용자의 이메일 주소와 비밀번호를 요청합니다. 사용자가 이메일과 비밀번호를 제출하면 Google 인증에서 입력된 사용자 인증 정보가 올바른지 확인합니다. 사용자 인증 정보가 올바르면 Google 인증에서 사용자의 로그인 쿠키를 설정합니다.

일부 기업에서는 서드 파티 ID 공급업체 (IdP)가 인증을 처리하는 더 정교한 모델을 사용합니다. Google 인증은 업계 표준 보안 보장 마크업 언어 (SAML) 프로토콜을 통해 이 모델을 지원합니다. 관리자는 SAML 인증을 사용하도록 도메인을 구성할 수 있습니다.

사용자 비밀번호 가져오기

ChromeOS는 로그인 중에 입력된 사용자의 비밀번호를 다음 용도로 식별해야 합니다.

  • 디스크 드라이브에 저장된 사용자의 데이터를 암호화합니다.
  • 잠금 화면을 보호합니다.
  • 네트워크 접근성이 없는 경우 오프라인 로그인을 사용 설정합니다.

SAML을 사용하는 경우 비밀번호는 ChromeOS 시스템 대화상자에 직접 입력되지 않고 ID 공급업체에서 호스팅하는 웹뷰 내에 입력됩니다. ChromeOS는 HTML에 액세스할 수 있지만 어떤 양식 필드에 데이터가 포함되어 있는지 명확하지 않으므로 비밀번호를 가져오는 간단하고 표준적인 방법이 없습니다.

SAML을 사용할 때 사용자의 비밀번호를 가져오는 방법에는 사용자 인증 정보 전달 API와 비밀번호 스크래핑의 두 가지가 있습니다.

Chrome Credentials Passing API

Google에서는 ID 공급업체가 SAML 페이지의 JavaScript에서 구현하여 필수 데이터를 ChromeOS에 전달할 수 있는 Credentials Passing API를 제공합니다. Google 인증은 이 API를 사용하지만 모든 SAML ID 공급업체도 사용할 수 있습니다.

비밀번호 스크래핑

SAML ID 공급업체는 Credentials Passing API를 지원하지 않는 경우 비밀번호 스크래핑을 사용할 수 있습니다.

이 메서드에서는 다음을 수행합니다.

  1. 인증 화면은 로그인 프로세스를 호스팅하는 웹뷰에 콘텐츠 스크립트를 삽입합니다.
  2. 콘텐츠 스크립트는 비밀번호 유형의 HTML 입력 필드를 식별하고 해당 콘텐츠를 배열에 복사합니다. 배열은 비밀번호 필드의 콘텐츠가 변경될 때마다 업데이트됩니다.
  3. 스크랩된 비밀번호는 이를 누적하는 백그라운드 페이지로 전송됩니다. 이렇게 하면 로그인 흐름이 여러 HTML 페이지로 리디렉션되더라도 비밀번호를 캡처할 수 있습니다.

로그인 흐름이 끝나면 스크랩된 비밀번호 배열이 백그라운드 페이지에서 검색됩니다. 비밀번호가 스크랩되지 않았거나, 비밀번호가 정확히 하나 스크랩되었거나, 비밀번호가 두 개 이상 스크랩되었을 수 있습니다.

스크랩된 비밀번호가 없음

콘텐츠 스크립트가 ID 공급업체에서 제공하는 HTML 페이지에서 비밀번호를 찾지 못합니다. ID 공급업체는 기존 비밀번호를 사용하지 않을 수 있습니다.

이 시나리오에서 ChromeOS는 사용자에게 기기의 수동 비밀번호를 선택하라는 메시지를 표시합니다. 비밀번호가 없는 경우 (예: 스마트 카드, NFC, 생체 인식으로 인증) ChromeOS 인증 프로세스가 비밀번호 없이 진행될 수 있습니다.

비밀번호가 정확히 1개 스크랩됨

콘텐츠 스크립트가 정확히 하나의 비밀번호를 식별합니다. 인증에 사용되는 사용자의 비밀번호일 가능성이 높습니다.

이 시나리오에서는 사용자의 비밀번호를 올바르게 스크랩했을 가능성이 높습니다. ChromeOS는 스크랩된 비밀번호를 사용자의 비밀번호로 사용하여 인증 프로세스를 계속합니다.

스크랩된 비밀번호가 2개 이상입니다.

콘텐츠 스크립트가 비밀번호를 여러 개 식별합니다. 이러한 상황은 ID 공급자가 사용자에게 로그인 양식에 영구 비밀번호와 일회용 비밀번호를 입력하도록 요구하는 경우에 발생할 수 있습니다.

이 시나리오에서는 사용자의 실제 비밀번호와 ChromeOS에서 관심이 없는 일부 추가 비밀번호 필드가 스크랩되었을 수 있습니다. 어떤 비밀번호가 올바른지 확인하기 위해 ChromeOS는 사용자에게 추가 비밀번호 프롬프트에 비밀번호를 한 번 더 입력하라는 메시지를 표시합니다.

입력한 비밀번호가 스크랩된 비밀번호 중 하나와 일치하면 사용자의 실제 비밀번호가 식별되고 인증 프로세스가 계속됩니다. 일치하는 항목이 없으면 사용자에게 비밀번호를 다시 입력하라는 메시지가 표시됩니다. 두 번 불일치하면 오류 메시지와 함께 로그인이 실패합니다.

엔터프라이즈 등록

엔터프라이즈 등록의 경우 등록 사용자의 이메일 주소가 있어야 기기를 올바른 도메인과 연결할 수 있습니다. 이메일은 기기 정책 가져오기 중에 PolicyData 메시지의 사용자 이름 필드에서 기기 관리 (DM) 서버에서 Chrome으로 전송됩니다. 사용자의 비밀번호를 확인할 필요가 없습니다.