승인

Developer는 SDM API를 사용하여 user를 대신하여 Google Nest 기기를 보고 관리할 수 있습니다. SDM API는 user 액세스 중인 기기를 관리하며, user 가developer 각 기기의 특성을 읽거나 쓰는 데 동의했으며,developer 가 각 특성에 액세스할 수 있도록 허용되었는지 확인합니다.

기기 관리에 SDM API를 사용하려면 먼저 user에서developer 를 승인해야 합니다.

승인 과정을 살펴보려면 Device Access 빠른 시작 가이드의 계정 승인 페이지를 참조하세요.

승인 오류 문제 해결에 대한 도움말은 승인 오류를 참조하세요.

OAuth 흐름

SDM API는user 승인을 위해 3-Legg Google OAuth 흐름을 사용합니다.

  • a user Nest 기기 관리 a developer 를 developer 승인하면user 이 PCM으로 전송되고, 여기서 user는 Google 계정에 로그인합니다.
  • user 에서 PCM의 developer에 부여할 권한을 선택합니다.
  • user 는 OAuth를 통해 동의를 제공하여developer 에 승인 코드를 부여합니다.
  • developer 는 승인 코드를 사용하여 액세스 토큰을 검색합니다.
  • developer 는 기기 관리를 위해 SDM API 호출과 함께 액세스 토큰을 사용합니다.

Google OAuth 및 설정 방법에 대한 자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스를 참조하세요.

파트너 연결 관리자 (PCM)

PCM은 SDM API에서 제공합니다.user 에 부여할 수 있는 모든 구조, 기기, 액세스 옵션을 나열하는 뷰입니다. developeruser은 승인 프로세스 중에 액세스 권한을 부여할 항목을 선택하고 액세스 제어 권한을 유지합니다.

PCM에서 선택한 옵션은 특성 그룹에 매핑되며 이는 특성의 developer 액세스 권한이 부여됩니다. 일부 특성 그룹은developer 가 user에 제공하는 통합 유형에 따라 함께 연결되며, user는 이러한 통합 특성 그룹에 권한을 사용 설정해야 이 통합을 사용 설정할 수 있습니다. 또는 사용자가 원하는 대로 연결되지 않은 특성 그룹에 권한을 부여할 수도 있습니다.

PCM 사용 설정

user에 PCM 뷰를 사용 설정하려면 승인 요청을 위해 표준 Google API OAuth 2.0 엔드포인트를 이 새로운 OAuth 엔드포인트로 바꿉니다.

https://nestservices.google.com/partnerconnections/project-id/auth

URL에 다음 매개변수를 사용합니다.

매개변수 설명
redirect_uri 승인이 완료되면 user 를 전달할 URI입니다.
client_id Google Cloud 프로젝트의 OAuth 2.0 클라이언트 ID입니다. Project ID와 연결된 ID와 동일해야 합니다. OAuth 클라이언트 ID는 유효하고 project에 고유해야 하며 다른 project과 공유될 수 없습니다.
access_type 사용할 값: offline
prompt 사용할 값: consent
response_type 사용할 값: code
승인 코드가 필요합니다.
scope 사용할 값: https://www.googleapis.com/auth/sdm.service
SDM API 범위.
state 선택사항. 요청과 콜백 사이의 상태를 유지하기 위해 developer 클라이언트에서 사용하는 불투명 값입니다.
linking_token GetToken 명령어에서 가져온 연결 토큰입니다.

PCM URL의 예:

https://nestservices.google.com/partnerconnections/
  2f6989ca-c756-4625-8cdc-d5b1edfb2dcd/auth?
  redirect_uri=https://www.example.com/api/link/M258KP8OWYZDVQ&
  client_id=418235700063-sdkiav89orn5r1nvrcr5t210qqjimq8l.apps.googleusercontent.com&
  access_type=offline&
  prompt=consent&
  response_type=code&
  scope=https://www.googleapis.com/auth/sdm.service

user 가 권한을 부여하면 승인 코드가 리디렉션 URI에서 code 매개변수로 반환됩니다. 이 코드를 사용하여 액세스 토큰을 가져오세요.

PCM에 액세스할 때 발생하는 오류에 관한 도움말은 Partner Connections Manager (PCM) 오류 참조를 확인하세요.

앱에 PCM 추가

앱에서 다음 URL을 사용하여 PCM 뷰를 추가합니다.

https://nestservices.google.com/partnerconnections

user 에 로그인하면 이 페이지에 연결된 모든Device Access developer및 권한 부여 및 취소를 위한 전환 버튼이 있는 모든 구조와 기기 목록이 표시됩니다. 또한 이 페이지에서 user 파트너별 연결을 해제할 수도 있습니다.

인증되지 않은 앱

SDM API는 제한된 범위를 사용합니다. 즉, 승인 중에 이 범위를 사용하는 앱은 OAuth API 인증이 완료되지 않는 한 '인증되지 않음'이 됩니다. Device Access 개인 용도로 사용하는 경우에는 OAuth API 인증이 필요하지 않습니다.

승인 프로세스 중에 Google Cloud의 OAuth 동의 화면sdm.service 범위가 구성되지 않은 경우 'Google에서 이 앱을 확인하지 않았습니다'라는 메시지가 표시될 수 있습니다. 이 화면은 고급 옵션을 클릭한 후 프로젝트 이름으로 이동 (안전하지 않음)을 클릭하여 우회할 수 있습니다.

자세한 내용은 확인되지 않은 앱 화면을 참고하세요.

액세스 토큰

승인된 구조 및 기기를 관리하기 위한 SDM API 호출은 항상 승인 중에user 에서 developer 에 부여한 고유한 액세스 토큰을 사용해야 합니다. 액세스 토큰은 수명이 짧기 때문에 지속적인 액세스를 위해 정기적으로 갱신해야 합니다.

나중에 구조 또는 기기에 대한 액세스 권한을 a user 취소 developer 하면 액세스 토큰이 즉시 만료되어 갱신할 수 없으며developer 더 이상 이 작업을 대신하여 SDM API를 호출할 수 없습니다 user.

계정 승인 취소

Google 계정을 승인 취소하는 방법에는 여러 가지가 있습니다. 선호되는 방법은 사용자가 파트너 연결 관리자 (PCM)를 사용하여 계정 권한을 수정하는 것입니다. 자세한 내용은 계정 권한 수정을 참고하세요. 다음 방법으로도 액세스 토큰을 취소할 수 있습니다.

  1. 사용자는 https://myaccount.google.com/permissions에서 취소할 수 있습니다.

  2. 개발자는 액세스 토큰을 엔드포인트 https://oauth2.googleapis.com/revoke에 전달할 수 있습니다. Google OAuth 및 토큰 취소에 관한 자세한 내용은 토큰 취소를 참조하세요.

삽입된 WebView

새로운 보안 브라우저 정책은 일반적으로 삽입된 WebView라고 하는 삽입된 브라우저 라이브러리에서 Google OAuth 요청을 금지합니다. 삽입된 모든 WebView가 차단됩니다. WebView 라이브러리를 사용하면 악의적인 개발자가 Google과 사용자 간의 통신을 가로채고 변경할 수 있기 때문에 문제가 됩니다. WebView 삽입은 계정 보안뿐만 아니라 애플리케이션의 사용성에도 영향을 줄 수 있습니다.

이 정책의 영향을 받는 경우 삽입된 WebView에서 Google의 OAuth 2.0 승인 엔드포인트에 예정된 보안 변경사항 지원 문서를 참고하세요.