인스턴스 ID란 무엇인가요?

인스턴스 ID는 앱의 인스턴스별로 고유 ID를 제공합니다. AndroidiOS 앱은 물론 Chrome 앱/확장 프로그램에도 인스턴스 ID를 구현할 수 있습니다.

주요 특징

인스턴스 ID는 인증을 위한 고유 ID를 제공할 뿐만 아니라 다른 서비스와 함께 사용할 보안 토큰을 생성할 수 있습니다. 기타 기능은 다음과 같습니다.

보안 토큰 생성

인스턴스 ID는 앱의 서버 측 관리형 리소스에 액세스할 수 있도록 타사에 승인하는 보안 토큰을 생성하는 간단한 API를 제공합니다. 이제 이 토큰을 사용하여 Google 클라우드 메시징을 통해 앱의 푸시 메시지를 승인하세요.

앱 신뢰성 확인

인스턴스 ID 토큰을 서버에 전달하고 인스턴스 ID 서비스를 사용하여 앱 패키지 이름을 확인하고 앱에 유효한 서명이 있는지 확인합니다. 인스턴스 ID 클라우드 서비스로 토큰을 확인하면 알려진 앱을 식별하는 데 도움이 됩니다. 비용 및 중복 왕복 통신을 줄이려면 이러한 토큰이 저장되도록 서버를 구성하세요. 보안 문제가 발생할 경우 앱에서 'deleteTokens' 또는 인스턴스 ID 자체를 사용하고 새 ID를 생성할 수 있습니다. 또한 인스턴스 ID 서버는 버그나 보안 문제를 감지하면 토큰 또는 인스턴스 ID 새로고침을 시작합니다.

앱 기기가 활성 상태인지 확인

인스턴스 ID 서버는 앱이 설치된 기기를 마지막으로 사용한 시기를 알려줍니다. 이를 통해 앱의 데이터를 유지할지 아니면 푸시 메시지를 보내 사용자의 재참여를 유도할지 결정합니다.

앱 식별 및 추적

인스턴스 ID는 전 세계 모든 앱 인스턴스에서 고유하므로 데이터베이스에서 앱 인스턴스를 고유하게 식별하고 추적하는 데 사용할 수 있습니다. 서버 측 코드는 인스턴스 ID 클라우드 서비스를 통해 인스턴스 ID가 진짜이며 서버에 등록한 원래 앱과 동일한 ID인지 확인할 수 있습니다. 개인 정보 보호를 위해 앱은 더 이상 데이터베이스의 기록과 연결되지 않도록 인스턴스 ID를 삭제할 수 있습니다. 다음번에 앱에서 인스턴스 ID를 호출하면 이전 인스턴스와의 관계 없이 완전히 새로운 인스턴스 ID를 가져옵니다.

인스턴스 ID 수명 주기

  1. 앱이 온라인 상태가 되면 인스턴스 ID 서비스가 InstanceID를 실행합니다. InstanceID는 로컬 기기에 저장된 비공개 키와 인스턴스 ID 서비스에 등록된 공개 키가 있는 공개 키/비공개 키 쌍으로 지원됩니다.
  2. 앱은 필요할 때마다 getID() 메서드를 사용하여 새 InstanceID를 요청할 수 있습니다. 앱을 지원하는 경우 앱이 서버에 서버에 저장할 수 있습니다.
  3. 앱은 필요에 따라 getToken() 메서드를 사용하여 인스턴스 ID 서비스에서 토큰을 요청할 수 있으며 InstanceID와 마찬가지로 자체 서버에 토큰을 저장할 수도 있습니다. 앱에 발급된 모든 토큰은 앱의 InstanceID에 속합니다.
  4. 토큰은 고유하고 안전하지만 보안 문제 발생 시 또는 기기 복원 중에 사용자가 앱을 제거한 후 재설치할 때 앱 또는 인스턴스 ID 서비스가 토큰을 새로고침해야 할 수 있습니다. 앱은 인스턴스 ID 서비스의 토큰 새로고침 요청에 응답하는 리스너를 구현해야 합니다.

인스턴스 ID 수명 주기

클라이언트 구현

인스턴스 ID는 Android와 iOS에서 모두 실행됩니다. 각 서비스를 사용하려면 클라이언트 앱에 적절한 라이브러리를 포함해야 합니다. Android에는 Google Play 서비스가 필요합니다. 토큰을 생성하려면 Google Developers Console에서 생성된 프로젝트 ID가 필요합니다.

자세한 안내는 AndroidiOS 구현 가이드를 참고하세요.