Automatische Anmeldung in Apps und auf Websites aktivieren

Wenn Ihre App, die Smart Lock für Passwörter verwendet, eine Nutzerdatenbank mit Ihrer Website teilt oder Ihre App und Ihre Website föderierte Anmeldeanbieter wie Google Log-in verwenden, können Sie die App mit der Website verknüpfen, sodass Nutzer ihre Anmeldedaten einmal speichern und sich dann automatisch sowohl in der App als auch auf der Website anmelden können.

Wenn Sie eine App mit einer Website verknüpfen möchten, müssen Sie Verknüpfungen deklarieren, indem Sie auf Ihrer Website eine JSON-Datei mit Digital Asset Links hosten und dem Manifest Ihrer App einen Link zur Digital Asset Link-Datei hinzufügen.

Wenn du auf deiner Website eine Erklärung für Links zu digitalen Assets hostest, kannst du auf deiner Website unter Android 8.0 und höher auch AutoFill-Daten für deine App freigeben.

Voraussetzungen

Die Anmeldedomain Ihrer Website muss über HTTPS verfügbar sein.

App mit Website verknüpfen

  1. Erstellen Sie eine JSON-Datei mit Digital Asset Links.

    Wenn du beispielsweise erklären möchtest, dass die Website https://signin.example.com und eine Android-App mit dem Paketnamen com.example gemeinsame Anmeldedaten teilen können, erstelle eine Datei mit dem Namen assetlinks.json mit folgendem Inhalt:

    [{
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://signin.example.com"
      }
     },
     {
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example",
        "sha256_cert_fingerprints": [
          "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
        ]
      }
     }]
    

    Das Feld relation ist ein Array mit einem oder mehreren Strings, die die erklärte Beziehung beschreiben. Wenn Sie erklären möchten, dass Anwendungen und Websites Anmeldedaten teilen, geben Sie den String delegate_permission/common.get_login_creds an.

    Das Feld target ist ein Objekt, das das Asset angibt, für das die Deklaration gilt. Die folgenden Felder identifizieren eine Website:

    namespace web
    site

    Die URL der Website im Format https://domain[:optional_port], z. B. https://www.example.com.

    domain muss vollständig qualifiziert sein und optional_port muss weggelassen werden, wenn Sie Port 443 für HTTPS verwenden.

    Ein site-Ziel kann nur eine Stammdomain sein. Sie können eine Anwendungsverknüpfung nicht auf ein bestimmtes Unterverzeichnis beschränken. Die URL darf keinen Pfad enthalten, z. B. einen Schrägstrich.

    Subdomains werden nicht als übereinstimmend betrachtet. Wenn Sie domain also als www.example.com angeben, ist die Domain www.counter.example.com nicht mit Ihrer Anwendung verknüpft.

    Die folgenden Felder identifizieren eine Android-App:

    namespace android_app
    package_name Der Paketname, der im Manifest der App deklariert ist. Beispiel: com.example.android
    sha256_cert_fingerprints Die SHA256-Fingerabdrücke des Signaturzertifikats Ihrer App. Du kannst den folgenden Befehl verwenden, um den Fingerabdruck zu generieren:
    $ keytool -list -v -keystore my-release-key.keystore

    Weitere Informationen findest du in der Referenz zu digitalen Assets.

  2. Hosten Sie die Digital Asset Link-JSON-Datei unter dem folgenden Speicherort in der Anmeldedomain:

    https://domain[:optional_port]/.well-known/assetlinks.json

    Wenn Ihre Anmeldedomain beispielsweise signin.example.com lautet, hosten Sie die JSON-Datei unter https://signin.example.com/.well-known/assetlinks.json.

    Der MIME-Typ für die Digital Assets Link-Datei muss im JSON-Format vorliegen. Der Server muss einen Content-Type: application/json-Header in der Antwort senden.

  3. Achte darauf, dass dein Host Google das Abrufen deiner Digital Asset Link-Datei erlaubt. Wenn du eine robots.txt-Datei hast, muss der Googlebot-Agent /.well-known/assetlinks.json abrufen können. Die meisten Websites können einfach jedem automatischen Agent das Abrufen von Dateien im Pfad /.well-known/ erlauben, sodass andere Dienste auf die Metadaten in diesen Dateien zugreifen können:

    User-agent: *
    Allow: /.well-known/
    

  4. Deklarieren Sie die Verknüpfung in der Android-App.

    1. Fügen Sie der Manifestdatei unter <application> die folgende Zeile hinzu:

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. Fügen Sie der Datei strings.xml eine asset_statements-Stringressource hinzu. Der asset_statements-String ist ein JSON-Objekt, das die zu ladenden assetlinks.json-Dateien angibt. Sie müssen alle Apostrophe und Anführungszeichen im String maskieren. Beispiel:

        <string name="asset_statements" translatable="false">
        [{
          \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
        }]
        </string>
      
        > GET /.well-known/assetlinks.json HTTP/1.1
        > User-Agent: curl/7.35.0
        > Host: signin.example.com
      
        < HTTP/1.1 200 OK
        < Content-Type: application/json
      
  5. Veröffentlichen Sie die App im Google Play Store. Es muss auf dem öffentlichen Kanal veröffentlicht werden, damit die Verknüpfungen abgerufen werden können.

  6. Optional: Füllen Sie das Zuordnungsformular für Smart Lock für Passwörter aus und geben Sie an, dass Sie den Prozess ausgeführt haben. Google prüft regelmäßig, ob die über das Formular eingereichten Partnerschaften tatsächlich funktionieren, und setzt sich gegebenenfalls mit Ihnen in Verbindung.

Wenn die Bestätigung abgeschlossen ist, können Nutzer Ihrer App ihre Anmeldedaten entweder in Ihrer App oder auf Ihrer Website speichern und automatisch in beiden angemeldet werden.

Beispiel: Mehrere Apps mit einer Website verknüpfen

Du kannst mehrere Apps mit einer Website verknüpfen, indem du jede App in der Digital Asset Link-Datei angibst. Wenn du beispielsweise die Anwendungen com.example und com.example.pro mit der Website unter https://signin.example.com/ verknüpfen möchtest, gib beide Apps in der unter https://signin.example.com/.well-known/assetlinks.json gehosteten JSON-Datei an:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

Deklarieren Sie dann die Verknüpfung in beiden Apps:

  1. Fügen Sie der Manifestdatei unter <application> die folgende Zeile hinzu:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Fügen Sie der Datei strings.xml die folgende Stringressource hinzu:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>
    

Beispiel: Apps mit mehreren Websites verknüpfen

Du kannst Apps mit mehreren Websites verknüpfen, indem du die einzelnen Websites in der Digital Assets Link-Datei angibst und die Datei auf jeder Website hostet. Wenn du beispielsweise die Anwendungen com.example und com.example.pro mit der Website unter https://signin.example.com/ und https://m.example.com/ verknüpfen möchtest, gib sowohl die Anwendungen als auch die Websites in der JSON-Datei an, die unter https://signin.example.com/.well-known/assetlinks.json gehostet wird:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://m.example.com"
  },
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

Fügen Sie dann in der unter https://m.example.com/.well-known/assetlinks.json gehosteten JSON-Datei die primäre Digital Asset Links-Datei ein:

[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]

Deklarieren Sie abschließend die Verknüpfung in beiden Apps:

  1. Fügen Sie der Manifestdatei unter <application> die folgende Zeile hinzu:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Fügen Sie der Datei strings.xml die folgende Stringressource hinzu:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>