개요

통합 경로 선택

필요에 가장 적합한 경로를 선택하세요.

경로 권장 용도 자세히 알아보기
범용 상거래 프로토콜 (UCP) 판매자 및 소매업체 UCP 문서
표준 계정 연결 스마트 홈, TV, YouTube 문서

계정 연결을 통해 Google 계정 소유자는 빠르고 원활하며 안전하게 서비스에 연결할 수 있습니다. Google 계정 연결을 구현하여 플랫폼의 사용자 데이터를 Google 앱 및 서비스와 공유할 수 있습니다.

보안 OAuth 2.0 프로토콜을 사용하면 사용자의 Google 계정을 플랫폼의 계정과 안전하게 연결하여 Google 애플리케이션 및 기기에 서비스에 대한 액세스 권한을 부여할 수 있습니다.

사용자는 계정을 연결하거나 연결 해제할 수 있으며, Google 계정 연결을 사용하여 플랫폼에서 새 계정을 만들 수 있습니다.

사용 사례

Google 계정 연결을 구현하는 몇 가지 이유는 다음과 같습니다.

  • 플랫폼의 사용자 데이터를 Google 앱 및 서비스와 공유합니다.

  • 범용 상거래 프로토콜 (UCP) 을 사용하여 Google 쇼핑 및 AI 서페이스 (검색, Gemini)와 통합합니다.

  • Google TV를 사용하여 동영상 및 영화 콘텐츠를 재생합니다.

  • Google Home 앱과 Google 어시스턴트('Hey Google, 조명 켜 줘')를 사용하여 Google 스마트 홈 연결 기기를 관리하고 제어합니다.

  • 대화형 작업( Conversational Actions)( "Hey Google, 스타벅스에서 평소에 주문하는 메뉴 주문해 줘")을 사용하여 사용자 맞춤 Google 어시스턴트 환경과 기능을 만듭니다.

  • 사용자가 Google 계정을 리워드 파트너 계정에 연결한 후 YouTube에서 자격 요건을 충족하는 라이브 스트림을 시청하여 리워드를 받을 수 있도록 합니다.

  • 가입 중에 Google 계정 프로필에서 동의를 얻어 공유된 데이터로 새 계정을 미리 채웁니다.

지원되는 기능

Google 계정 연결에서 지원되는 기능은 다음과 같습니다.

  • OAuth 연결 암시적 흐름을 사용하여 데이터를 빠르게 공유합니다.

  • OAuth 연결 승인 코드 흐름으로 보안을 개선합니다.

  • 기존 사용자를 로그인하거나 Google 인증을 받은 새 사용자를 플랫폼에 가입시키고, 동의를 얻고 간소화된 연결을 통해 데이터를 안전하게 공유합니다.

  • 앱 플립으로 불편을 줄입니다. 신뢰할 수 있는 Google 앱에서 한 번 탭하면 인증된 Android 또는 iOS 앱이 안전하게 열리고 한 번 탭하면 사용자 동의가 부여되고 계정이 연결됩니다.

  • 맞춤 범위를 정의하여 필요한 데이터만 공유하고, 데이터 사용 방식을 명확하게 정의하여 사용자 신뢰를 높여 사용자 개인 정보 보호를 개선합니다.

  • 계정을 연결 해제하면 플랫폼에서 호스팅되는 데이터 및 서비스에 대한 액세스 권한이 취소될 수 있습니다. 선택적 토큰 취소 엔드포인트 를 구현하면 Google에서 시작한 이벤트를 계속 동기화할 수 있으며, 교차 계정 보호 (RISC) 를 사용하면 플랫폼에서 발생하는 연결 해제 이벤트를 Google에 알릴 수 있습니다.

계정 연결 흐름

OAuth 기반이며 OAuth 2.0 호환 승인 및 토큰 교환 엔드포인트를 관리하거나 제어해야 하는 3가지 Google 계정 연결 흐름이 있습니다.

연결 프로세스 중에 계정 소유자의 계정 연결 및 데이터 공유 동의를 얻은 후 개별 Google 계정에 대한 액세스 토큰을 Google에 발급합니다.

OAuth 연결('웹 OAuth')

사용자를 연결을 위해 웹사이트로 보내는 기본 OAuth 흐름입니다. 사용자는 웹사이트로 리디렉션되어 계정에 로그인합니다. 로그인하면 사용자는 서비스의 데이터를 Google과 공유하는 데 동의합니다. 이때 사용자의 Google 계정과 서비스가 연결됩니다.

OAuth 연결은 승인 코드 및 암시적 OAuth 흐름을 지원합니다. 서비스는 암시적 흐름을 위한 OAuth 2.0 호환 승인 엔드포인트를 호스팅해야 하며, 승인 코드 흐름을 사용하는 경우 승인 및 토큰 교환 엔드포인트를 모두 노출해야 합니다.

그림 1. 웹 OAuth를 사용하여 사용자 휴대전화에서 계정 연결

OAuth 기반 앱 플립 연결('앱 플립')

사용자를 연결을 위해 으로 보내는 OAuth 흐름입니다.

OAuth 기반 앱 플립 연결은 사용자가 인증된 Android 또는 iOS 모바일 앱과 Google 플랫폼 간에 이동하여 제안된 데이터 액세스 변경사항을 검토하고 플랫폼의 계정을 Google 계정과 연결하는 데 동의하도록 안내합니다. 앱 플립을 사용 설정하려면 서비스에서 OAuth 연결 또는 OAuth 기반 Google 계정으로 로그인 연결 흐름을 사용하여 승인 코드를 지원해야 합니다.

앱 플립은 AndroidiOS 모두에서 지원됩니다.

작동 방식:

Google 앱은 앱이 사용자 기기에 설치되어 있는지 확인합니다.

  • 앱이 발견되면 사용자는 앱으로 '플립'됩니다. 앱은 Google과 계정을 연결하는 데 동의를 얻은 다음 Google 서페이스로 '플립 백'합니다.
  • 앱을 찾을 수 없거나 앱 플립 연결 프로세스 중에 오류가 발생하면 사용자는 간소화된 흐름 또는 웹 OAuth 흐름으로 리디렉션됩니다.

그림 2. 앱 플립을 사용하여 사용자 휴대전화에서 계정 연결

OAuth 기반 간소화된 연결('간소화됨')

OAuth 기반 Google 계정으로 로그인 간소화된 연결 은 OAuth 연결 위에 Google 계정으로 로그인을 추가하여 사용자가 Google 서페이스를 벗어나지 않고 연결 프로세스를 완료할 수 있도록 하여 불편함과 이탈을 줄입니다. OAuth 기반 간소화된 연결 은 Google 계정으로 로그인과 OAuth 연결을 결합하여 원활한 로그인, 계정 생성, 계정 연결로 최고의 사용자 환경을 제공합니다. 서비스는 OAuth 2.0 호환 승인 및 토큰 교환 엔드포인트를 지원해야 합니다. 또한 토큰 교환 엔드포인트는 JSON 웹 토큰 (JWT) 어설션을 지원하고 check, create, 및 get 인텐트를 구현해야 합니다.

작동 방식:

Google은 사용자 계정을 어설션하고 이 정보를 전달합니다.

  • 데이터베이스에 사용자의 계정이 있는 경우 사용자는 Google 계정을 서비스의 계정과 연결합니다.
  • 데이터베이스에 사용자의 계정이 없는 경우 사용자는 Google에서 제공하는 어설션된 정보 (이메일, 이름, 프로필 사진)로 새 서드 파티 계정을 만들거나 다른 이메일로 로그인하고 연결할 수 있습니다. 이렇게 하려면 웹 OAuth를 사용하여 서비스에 로그인해야 합니다.

그림 3. 간소화된 연결을 사용하여 사용자 휴대전화에서 계정 연결

어떤 흐름을 사용해야 할까요?

사용자에게 최고의 연결 환경을 제공하려면 모든 흐름을 구현하는 것이 좋습니다. 간소화된 흐름과 앱 플립 흐름은 사용자가 몇 단계만으로 연결 프로세스를 완료할 수 있으므로 연결 불편함을 줄입니다. 웹 OAuth 연결은 가장 적은 노력이 필요하며 시작하기에 좋은 방법입니다. 그런 다음 다른 연결 흐름을 추가할 수 있습니다.

토큰 작업

Google 계정 연결은 OAuth 2.0 업계 표준을 기반으로 합니다.

계정 소유자의 계정 연결 및 데이터 공유 동의를 얻은 후 개별 Google 계정에 대한 액세스 토큰을 Google에 발급합니다.

令牌类型

OAuth 2.0 使用称为令牌的字符串在用户代理、客户端应用和 OAuth 2.0 服务器之间进行通信。

在账号关联期间,您可以使用三种类型的 OAuth 2.0 令牌:

  • 授权代码。一种短期有效的令牌,可用于交换访问令牌和刷新令牌。出于安全考虑,Google 会调用您的授权端点以获取一次性或非常短效的代码。

  • 访问令牌。授予持有者对资源的访问权限的令牌。为限制因丢失此令牌而导致的泄露风险,此令牌的有效期有限,通常会在大约一小时后过期。

  • 刷新令牌。一个长期有效的令牌,在访问令牌到期时可以交换为新的访问令牌。如果您的服务与 Google 集成,则此令牌由 Google 专门存储和使用。Google 会调用您的令牌交换端点,以便将刷新令牌换成访问令牌,后者会用于访问用户数据。

令牌处理

在使用令牌时,分片环境和客户端-服务器交换中的竞态条件可能会导致复杂的时间安排和错误处理场景。例如:

  • 您收到新的访问令牌请求,并发出新的访问令牌。同时,您会收到使用上一个未过期的访问令牌访问服务资源的请求。
  • Google 尚未收到(或从未收到)您的刷新令牌回复。与此同时,之前有效的刷新令牌会在 Google 发出的请求中使用。

由于集群中运行的异步服务、网络行为或其他原因,请求和响应可能会以任何顺序到达,也可能根本不会到达。

我们无法保证您和 Google 的令牌处理系统内部以及它们之间的共享状态是立即且完全一致的。在短时间内,多个有效、未过期的令牌可以在系统内部或不同系统之间共存。为了尽可能减少对用户的负面影响,我们建议您执行以下操作:

  • 接受未过期的访问令牌,即使已发出较新的令牌也是如此。
  • 使用刷新令牌轮替的替代方案。
  • 支持多个同时有效的访问令牌和刷新令牌。出于安全考虑,您应限制令牌数量和令牌生命周期。
维护和中断处理

在维护或意外停机期间,Google 可能无法调用您的授权或令牌交换端点来获取访问令牌和刷新令牌。

您的端点应返回 503 错误代码和空正文。在这种情况下,Google 会在有限的时间内重试失败的令牌交换请求。只要 Google 稍后能够获取刷新令牌和访问令牌,用户就不会看到失败的请求。

如果由用户发起,访问令牌请求失败会导致可见错误。如果使用隐式 OAuth 2.0 流程,用户将需要重试关联失败。

建议

您可以通过多种方法最大限度地降低维护影响。请考虑以下可选方案:

  • 维护现有服务,并将有限数量的请求路由到新更新的服务。请仅在确认预期功能后迁移所有请求。

  • 减少维护期间令牌请求的数量:

    • 将维护期限制为短于访问令牌有效期。

    • 暂时延长访问令牌生命周期:

      1. 将令牌生命周期延长到超过维护期。
      2. 等待访问令牌生命周期的两倍时间,以便用户将短时有效的令牌换成时长更长的令牌。
      3. 进入维护模式。
      4. 使用 503 错误代码和空正文响应令牌请求。
      5. 退出维护。
      6. 将令牌生命周期缩短为正常值。

Google에 등록

계정 연결을 사용 설정하려면 OAuth 2.0 설정의 세부정보와 사용자 인증 정보를 공유해야 합니다. 자세한 내용은 등록을 참고하세요.