Developer는 SDM API를 사용하여 user를 대신하여 Google Nest 기기를 보고 관리할 수 있습니다. SDM API는 user 가 액세스할 기기를 관리하고, user 가 각 기기의 트레잇 읽기 또는 쓰기에 동의했으며,developer 가 각 트레잇에 액세스할 수 있도록 허용 목록에 추가되었는지 확인합니다.developer
기기 관리에 SDM API를 사용하려면 먼저developer 가 user의 승인을 받아야 합니다.
승인 프로세스에 관한 안내는 Device Access 빠른 시작 가이드의 계정 승인 페이지를 참고하세요.
승인 오류 문제 해결에 도움이 필요하면 승인 오류를 참고하세요.
OAuth 흐름
SDM API는user 승인에 3-Legged 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 가 developer에 부여할 수 있는 모든 구조, 기기, 액세스 옵션을 나열하는 뷰입니다. user는 승인 프로세스 중에 액세스 권한을 부여할 항목을 선택하고 해당 액세스 권한을 계속 제어합니다.
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입니다. 이 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 클라이언트가 요청과 콜백 간에 상태를 유지하는 데 사용하는 불투명 값입니다. |
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 추가
앱에서 다음 URL을 사용하여 PCM 뷰를 추가합니다.
https://nestservices.google.com/partnerconnections
user 이 로그인하면 이 페이지에 연결된 모든Device Access developer와 권한 부여 및 취소 전환 버튼이 있는 모든 구조 및 기기 목록이 표시됩니다. 이 페이지에서 파트너별로 파트너 연결을 해제할 수도 있습니다. user
확인되지 않은 앱
SDM API는 제한된 범위를 사용합니다. 즉, 승인 중에 이 범위를 사용하는 모든 앱은 OAuth API 인증이 완료되지 않는 한 '확인되지 않음'으로 표시됩니다. 개인용으로 Device Access 를 사용하는 경우 OAuth API 인증이 필요하지 않습니다.
승인 프로세스 중에 sdm.service
범위가 Google Cloud의 OAuth 동의 화면에 구성되지 않은 경우 'Google에서 이 앱을 확인하지 않음' 화면이 표시될 수 있습니다. 이 화면은 고급 옵션을 클릭한 다음 프로젝트 이름으로 이동 (안전하지 않음)을 클릭하여 우회할 수 있습니다.
자세한 내용은 확인되지 않은 앱 화면을 참고하세요.
액세스 토큰
승인된 구조 및 기기를 관리하기 위한 모든 SDM API 호출은 승인 중에user 에 의해 developer 에 부여된 고유한 액세스 토큰을 사용해야 합니다. 액세스 토큰은 수명이 짧으며 지속적인 액세스를 보장하려면 정기적으로 새로고침해야 합니다.
a user 이 나중에 developer 구조물 또는 기기에 대한 액세스 권한을 취소하면 액세스 토큰이 즉시 만료되어 갱신할 수 없으며developer 는 더 이상 해당 user을 대신하여 SDM API를 호출할 수 없습니다.
계정 승인 취소
Google 계정의 승인 해제는 여러 가지 방법으로 할 수 있습니다. 사용자가 파트너 연결 관리자 (PCM)를 사용하여 계정 권한을 수정하는 것이 좋습니다. 자세한 내용은 계정 권한 수정을 참고하세요. 다음과 같은 방법으로 액세스 토큰을 취소할 수도 있습니다.
사용자는 https://myaccount.google.com/permissions에서 권한을 취소할 수 있습니다.
개발자는 액세스 토큰을 엔드포인트
https://oauth2.googleapis.com/revoke
에 전달할 수 있습니다. Google OAuth 및 토큰 취소에 대해 자세히 알아보려면 토큰 취소하기를 참고하세요.
삽입된 WebView
새로운 보안 브라우저 정책은 일반적으로 삽입된 WebView라고 하는 삽입된 브라우저 라이브러리에서 Google OAuth 요청을 금지합니다. 모든 삽입된 WebView가 차단됩니다. 내장 WebView 라이브러리는 악의적인 개발자가 Google과 사용자 간의 통신을 가로채고 변경할 수 있기 때문에 문제가 됩니다. 삽입된 WebView는 계정 보안에 영향을 미칠 뿐만 아니라 애플리케이션의 사용성에 영향을 미칠 수 있습니다.
이 정책의 영향을 받는 경우 삽입된 WebView의 Google OAuth 2.0 승인 엔드포인트에 대한 예정된 보안 변경사항 지원 도움말을 참고하세요.