인스턴스 ID는 앱의 인스턴스별로 고유 ID를 제공합니다. Android 및 iOS 앱은 물론 Chrome 앱/확장 프로그램에도 인스턴스 ID를 구현할 수 있습니다.
주요 특징
인스턴스 ID는 인증을 위한 고유 ID를 제공할 뿐만 아니라 다른 서비스와 함께 사용할 보안 토큰을 생성할 수 있습니다. 기타 기능은 다음과 같습니다.
보안 토큰 생성
- 인스턴스 ID는 앱의 서버 측 관리형 리소스에 액세스할 수 있도록 타사에 승인하는 보안 토큰을 생성하는 간단한 API를 제공합니다. 이제 이 토큰을 사용하여 Google 클라우드 메시징을 통해 앱의 푸시 메시지를 승인하세요.
앱 신뢰성 확인
- 인스턴스 ID 토큰을 서버에 전달하고 인스턴스 ID 서비스를 사용하여 앱 패키지 이름을 확인하고 앱에 유효한 서명이 있는지 확인합니다. 인스턴스 ID 클라우드 서비스로 토큰을 확인하면 알려진 앱을 식별하는 데 도움이 됩니다. 비용 및 중복 왕복 통신을 줄이려면 이러한 토큰이 저장되도록 서버를 구성하세요. 보안 문제가 발생할 경우 앱에서 'deleteTokens' 또는 인스턴스 ID 자체를 사용하고 새 ID를 생성할 수 있습니다. 또한 인스턴스 ID 서버는 버그나 보안 문제를 감지하면 토큰 또는 인스턴스 ID 새로고침을 시작합니다.
앱 기기가 활성 상태인지 확인
- 인스턴스 ID 서버는 앱이 설치된 기기를 마지막으로 사용한 시기를 알려줍니다. 이를 통해 앱의 데이터를 유지할지 아니면 푸시 메시지를 보내 사용자의 재참여를 유도할지 결정합니다.
앱 식별 및 추적
- 인스턴스 ID는 전 세계 모든 앱 인스턴스에서 고유하므로 데이터베이스에서 앱 인스턴스를 고유하게 식별하고 추적하는 데 사용할 수 있습니다. 서버 측 코드는 인스턴스 ID 클라우드 서비스를 통해 인스턴스 ID가 진짜이며 서버에 등록한 원래 앱과 동일한 ID인지 확인할 수 있습니다. 개인 정보 보호를 위해 앱은 더 이상 데이터베이스의 기록과 연결되지 않도록 인스턴스 ID를 삭제할 수 있습니다. 다음번에 앱에서 인스턴스 ID를 호출하면 이전 인스턴스와의 관계 없이 완전히 새로운 인스턴스 ID를 가져옵니다.
인스턴스 ID 수명 주기
- 앱이 온라인 상태가 되면 인스턴스 ID 서비스가
InstanceID
를 실행합니다.InstanceID
는 로컬 기기에 저장된 비공개 키와 인스턴스 ID 서비스에 등록된 공개 키가 있는 공개 키/비공개 키 쌍으로 지원됩니다. - 앱은 필요할 때마다
getID()
메서드를 사용하여 새InstanceID
를 요청할 수 있습니다. 앱을 지원하는 경우 앱이 서버에 서버에 저장할 수 있습니다. - 앱은 필요에 따라
getToken()
메서드를 사용하여 인스턴스 ID 서비스에서 토큰을 요청할 수 있으며InstanceID
와 마찬가지로 자체 서버에 토큰을 저장할 수도 있습니다. 앱에 발급된 모든 토큰은 앱의InstanceID
에 속합니다. - 토큰은 고유하고 안전하지만 보안 문제 발생 시 또는 기기 복원 중에 사용자가 앱을 제거한 후 재설치할 때 앱 또는 인스턴스 ID 서비스가 토큰을 새로고침해야 할 수 있습니다. 앱은 인스턴스 ID 서비스의 토큰 새로고침 요청에 응답하는 리스너를 구현해야 합니다.
클라이언트 구현
인스턴스 ID는 Android와 iOS에서 모두 실행됩니다. 각 서비스를 사용하려면 클라이언트 앱에 적절한 라이브러리를 포함해야 합니다. Android에는 Google Play 서비스가 필요합니다. 토큰을 생성하려면 Google Developers Console에서 생성된 프로젝트 ID가 필요합니다.