API-Schlüssel verwenden

Hier erfährst du, wie du einen API-Schlüssel für das Maps SDK for Android erstellst, ihn zu deiner App hinzufügst und den Schlüssel einschränkst, um die App zu sichern. Du musst jeder App, für die du das SDK verwendest, einen API-Schlüssel hinzufügen.

Hinweis

Damit du das Maps SDK for Android nutzen kannst, benötigst du ein Projekt mit einem Rechnungskonto. Außerdem muss das Maps SDK for Android aktiviert sein. Weitere Informationen findest du im englischsprachigen Artikel zum Einrichten von Projekten in der Google Cloud Console.

API-Schlüssel erstellen

Der API-Schlüssel ist eine eindeutige Kennung, mit der Anfragen deines Projekts zu Nutzungs- und Abrechnungszwecken authentifiziert werden. Du musst mindestens einen API-Schlüssel mit deinem Projekt verknüpft haben.

So erstellst du einen API-Schlüssel:

Cloud Console

  1. Rufe Google Maps Platform > Anmeldedaten auf.

    Zur Seite „Anmeldedaten“

  2. Klicke auf der Seite Anmeldedaten auf Anmeldedaten erstellen > API-Schlüssel.
    Im Dialogfeld API-Schlüssel erstellt wird der neu erstellte API-Schlüssel angezeigt.
  3. Klicke auf Schließen.
    Der neue API-Schlüssel wird auf der Seite Anmeldedaten unter API-Schlüssel aufgeführt.
    Du musst den API-Schlüssel einschränken, bevor du ihn in der Produktionsumgebung verwendest.

Cloud SDK

gcloud alpha services api-keys create \
    --project "PROJECT" \
    --display-name "DISPLAY_NAME"

Weitere Informationen zum Google Cloud SDK, zur Cloud SDK-Installation und zum folgenden Befehl:

API-Schlüssel in App einfügen

In diesem Abschnitt wird beschrieben, wie du deinen API-Schlüssel speicherst, damit er von deiner App sicherer referenziert werden kann. Er sollte nicht in deinem Versionsverwaltungssystem eingecheckt werden. Stattdessen empfehlen wir dir, ihn im Stammverzeichnis deines Projekts in der Datei local.properties zu speichern. Weitere Informationen zur Datei local.properties findest du unter Gradle properties files (nur in englischer Sprache verfügbar).

Du kannst das Secrets Gradle Plugin for Android verwenden, um diese Aufgabe zu optimieren.

So installierst du das Plug-in und speicherst deinen API-Schlüssel:

  1. Öffne in Android Studio die Datei build.gradle auf Stammebene und füge folgenden Code in das Element dependencies unter buildscript ein:
    buildscript {
        dependencies {
            // ...
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.0"
        }
    }
        
  2. Öffne dann die Datei build.gradle auf App-Ebene und füge dem Element plugins den folgenden Code hinzu.
    id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
        
  3. Speichere die Datei und synchronisiere dein Projekt mit Gradle.
  4. Öffne die Datei local.properties in deinem Verzeichnis auf Projektebene und füge den folgenden Code ein: Ersetze hierbei YOUR_API_KEY durch deinen eigenen API-Schlüssel.
    MAPS_API_KEY=YOUR_API_KEY
        
  5. Speichere die Datei und synchronisiere dein Projekt mit Gradle.
  6. Gehe in der Datei AndroidManifest.xml zu com.google.android.geo.API_KEY und nimm folgende Änderungen am android:value attribute vor:
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />
        

Hinweis: Für den API-Schlüssel wird com.google.android.geo.API_KEY als Metadatenname empfohlen (siehe oben). Ein Schlüssel mit diesem Namen kann zur Authentifizierung bei mehreren Google Maps-basierten APIs auf der Android-Plattform verwendet werden, einschließlich Maps SDK for Android. Aus Gründen der Abwärtskompatibilität unterstützt die API auch den Namen com.google.android.maps.v2.API_KEY. Für diesen alten Namen wird nur die Authentifizierung bei Version 2 der Android Maps API unterstützt. In der Anwendung kann nur einer der Metadatennamen für den API-Schlüssel festgelegt werden. Falls beide angegeben werden, gibt die API eine Ausnahme aus.

API-Schlüssel einschränken

Wenn du API-Schlüssel einschränkst, wird deine App sicherer und es wird dafür gesorgt, dass nur autorisierte Anfragen gesendet werden. Wir empfehlen dringend, die Einschränkungen für deine API-Schlüssel zu befolgen. Weitere Informationen findest du unter Best Practices für die API-Sicherheit.

Wenn du den API-Schlüssel einschränkst, musst du den SHA-1-Zertifikatfingerabdruck des Signaturschlüssels angeben, mit dem die App signiert wurde. Es gibt zwei Arten von Zertifikaten:

  • Debug-Zertifikat: Verwende diesen Zertifikatstyp nur mit Apps, die du testest, und mit Code, der nicht für die Produktionsumgebung bestimmt ist. Veröffentliche keine Apps, die mit einem Debug-Zertifikat signiert sind. Es wird von den Android SDK-Tools automatisch generiert, wenn du einen Debug-Build ausführst.
  • Release-Zertifikat: Verwende dieses Zertifikat, wenn deine App veröffentlicht werden soll. Es wird von den Android SDK-Tools generiert, wenn du einen Release-Build ausführst.

Weitere Informationen zu digitalen Zertifikaten findest du im Leitfaden zum Signieren von Apps (in englischer Sprache).

Weitere Informationen zum Abrufen des Zertifikatfingerabdrucks findest du im Abschnitt zum Authentifizieren des Clients. Wenn du die Funktion Play App-Signatur verwendest, musst du in der Play Console die Seite für die App-Signatur aufrufen, um den Fingerabdruck deines Zertifikats zu erhalten.

So schränkst du einen API-Schlüssel ein:

Cloud Console

  1. Rufe Google Maps Platform > Anmeldedaten auf.

    Zur Seite „Anmeldedaten“

  2. Wähle den API-Schlüssel aus, für den du eine Einschränkung festlegen möchtest. Die Seite mit den Eigenschaften des API-Schlüssels wird angezeigt.
  3. Nimm unter Schlüsseleinschränkungen folgende Einstellungen vor:
    • App-Einschränkungen:
      1. Wähle die Option Android-Apps aus.
      2. Klicke auf + Paketname und Fingerabdruck hinzufügen.
      3. Gib den Paketnamen und den Fingerabdruck des SHA-1-Zertifikats ein. Beispiel:
        com.example.android.mapexample
        BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    • API-Einschränkungen:
      1. Klicke auf Schlüssel einschränken.
      2. Wähle im Drop-down-Menü APIs auswählen die Option Maps SDK for Android aus. Wenn das Maps SDK for Android nicht aufgeführt ist, musst du es aktivieren.
  4. Klicke abschließend auf Speichern.

Cloud SDK

Vorhandene Schlüssel auflisten

gcloud services api-keys list --project="PROJECT"

Vorhandene Einschränkungen für einen vorhandenen Schlüssel löschen

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --clear-restrictions

Neue Einschränkungen für einen vorhandenen Schlüssel festlegen

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --api_target="maps-android-backend.googleapis.com"
    --allowed-application="sha1_fingerprint=SHA1_FINGERPRINT,package_name=ANDROID_PACKAGE_NAME"

Weitere Informationen zum Google Cloud SDK, zur Cloud SDK-Installation und zum folgenden Befehl: