Saga : M&M (Mundo Mobile)
Chega de teoria! #1 – Restringindo a API Key
Continuando a saga para nos familiarizar com o Google Developers. A missão de hoje é aprender um pouco sobre como restringir nossa API Key gerando um Fingerprint. Vamos lá:
A API key disponível
A API key pode ser utilizada por qualquer um que tenha acesso. Caso esteja utilizando-a no side-server, os problemas de segurança podem não ser graves. No entanto, para distribuir esta key com o app, então é recomendado restringir o acesso a ela de forma que somente nosso app consiga usá-la.
Para restringir a API Key, devemos gerar um fingerprint (método de identificação única de um objeto).
Step by Step
Para gerar um fingerprint, use a janela de comandos e este formato de comando:
Keytool -list -v -keystore [STORE FILENAME] -alias [ALIAS NAME] -storepass [STORE PASSWORD] -keypass [KEY PASSWORD]
Para debug os valores:
[ALIAS NAME] = androiddebugkey [STORE PASSWORD] = android [KEY PASSWORD] = android
Onde:
- STORE FILENAME: pasta que armazena o resultado gerado
Para rodar o cmd keytool, localize a pasta do JDK do Java. Veja um exemplo para um usuário genérico:
C:\Program Files (x86)\Java\jdk1.8.0_112\bin>keytool -list -v -keystore "C:\Users\user\AppData\Local\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
O resultado da execução do comando:
Assinatura SHA-1
Agora pegue do resultado gerado, a assinatura SHA-1:
SHA1: CF:EXXXXX5:B1:XXXXXXXXXX5:EE:9D:C5:EE:8XXXXXXXXX7:F1:76
1 – Acesse console.developers.google.com
De posse do SHA1 em mãos, retorne para console developer onde geramos a API KEY e dê um editar.
2 – Escolha a opção Apps para Android
3 – Adicione o SHA-1
Adicione o SHA-1 e o nome do pacote do app Xamarin Android e salve.
Atenção ao nome do package. Ele deve ser igual ao definido no app.
Por questão de segurança
Aqui foi gerado uma key e uma restrição para a versão Debug do app. Mas, por questão de segurança quando fizer o deploy em produção gere outra chave e crie outra assinatura de restrição.
Pronto! Já temos a Chave de API protegido com o Firegrint.
Keep Programming!