O que é o ID da instância?

Principais recursos

Além de fornecer IDs exclusivos para autenticação, o Instance ID pode gerar tokens de segurança para uso com outros serviços. Outros recursos incluem:

Gerar tokens de segurança

O Instance ID oferece uma API simples para gerar tokens de segurança que autorizam terceiros a acessar os recursos gerenciados do servidor do app.

Verificar a autenticidade do app

Transmita tokens de ID da instância para seu servidor e use o serviço de ID da instância para verificar o nome do pacote do app e conferir se ele tem uma assinatura válida. A verificação de tokens com o serviço de nuvem do Instance ID ajuda a identificar apps conhecidos. Para reduzir o custo e as comunicações de ida e volta redundantes, configure seu servidor para armazenar esses tokens para que a verificação seja necessária apenas uma vez. Em caso de problemas de segurança, o app pode excluir tokens ou o ID de instância e gerar novos. Além disso, o servidor de ID de instância inicia a atualização do token ou do ID de instância se detectar bugs ou problemas de segurança.

Confirmar que o dispositivo do app está ativo

O servidor de ID de instância pode informar quando o dispositivo em que o app está instalado foi usado pela última vez. Use isso para decidir se vai manter os dados do app ou enviar uma mensagem push para interagir novamente com os usuários.

Identificar e rastrear apps

O ID de instância é exclusivo em todas as instâncias de app no mundo todo. Assim, seu banco de dados pode usá-lo para identificar e rastrear instâncias de app de maneira exclusiva. O código do lado do servidor pode verificar, pelo serviço de nuvem do ID da instância, se um ID da instância é genuíno e se é o mesmo ID do app original registrado no servidor. Por motivos de privacidade, o app pode excluir um ID de instância para que ele não seja mais associado a nenhum histórico no banco de dados. Na próxima vez que o app chamar o ID de instância, ele receberá um ID de instância totalmente novo sem relação com o anterior.

Ciclo de vida do ID da instância

  1. O serviço de ID de instância emite um InstanceID quando o app fica on-line. O InstanceID é apoiado por um par de chaves pública/privada com a chave privada armazenada no dispositivo local e a chave pública registrada no serviço de ID de instância.
  2. Seu app pode solicitar uma nova InstanceID sempre que necessário usando o método getID(). O app pode armazená-lo no servidor, se você tiver um que ofereça suporte a ele.
  3. O app pode solicitar tokens do serviço de ID de instância conforme necessário usando o método getToken(). Além disso, assim como InstanceID, o app também pode armazenar tokens no seu próprio servidor. Todos os tokens emitidos para o app pertencem ao InstanceID dele.
  4. Os tokens são exclusivos e seguros, mas seu app ou o serviço de Instance ID pode precisar atualizar os tokens em caso de problemas de segurança ou quando um usuário desinstalar e reinstalar o app durante a restauração do dispositivo. Seu app precisa implementar um listener para responder a solicitações de atualização de token do serviço de ID de instância.

Implementação do cliente

O ID da instância é executado no Android e no iOS. Cada uma delas exige que você inclua a biblioteca apropriada no app cliente. O Android exige o Google Play Services. Você vai precisar de um ID de projeto gerado pelo Google Developers Console se quiser gerar tokens.

Para instruções detalhadas, consulte os guias de implementação do Android e do iOS.