Automatische Anmeldung in Apps und auf Websites aktivieren

Wenn Ihre App, die Smart Lock for Passwords verwendet, eine Nutzerdatenbank mit Ihrer Website teilt oder wenn 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.

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

Wenn du auf deiner Website eine Digital Asset Links-Erklärung hostest, können damit auch Autofill-Daten für deine App freigegeben werden, wenn diese unter Android 8.0 oder höher ausgeführt wird.

Voraussetzungen

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

App mit Ihrer Website verknüpfen

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

    Wenn Sie beispielsweise deklarieren möchten, dass die Website https://signin.example.com und eine Android-App mit dem Paketnamen com.example Anmeldedaten freigeben können, erstellen Sie eine Datei mit dem Namen assetlinks.json und 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 aus einem oder mehreren Strings, die die deklarierte Beziehung beschreiben. Wenn Sie angeben möchten, dass Apps und Websites Anmeldedaten gemeinsam nutzen, geben Sie den String delegate_permission/common.get_login_creds an.

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

    namespace web
    site

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

    domain muss voll qualifiziert sein und optional_port muss weggelassen werden, wenn Port 443 für HTTPS verwendet wird.

    Ein site-Ziel kann nur eine Stammdomain sein. Eine Anwendungsverknüpfung kann nicht auf ein bestimmtes Unterverzeichnis beschränkt werden. Die URL darf keinen Pfad enthalten, z. B. keinen abschließenden Schrägstrich.

    Subdomains werden nicht als übereinstimmend angesehen. Wenn Sie also domain 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 im Manifest der App angegebene Paketname. Beispiel: com.example.android
    sha256_cert_fingerprints Die SHA256-Fingerabdrücke des Signaturzertifikats Ihrer App. Mit dem folgenden Befehl können Sie den Fingerabdruck generieren:
    $ keytool -list -v -keystore my-release-key.keystore

    Weitere Informationen finden Sie in der Referenz zu Digital Asset Links.

  2. Hosten Sie die Digital Assets 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 ist, 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 JSON sein. Achten Sie darauf, dass der Server in der Antwort einen Content-Type: application/json-Header sendet.

  3. Prüfen Sie, ob Ihr Host Google erlaubt, Ihre Digital Asset Link-Datei abzurufen. Wenn du eine robots.txt-Datei hast, muss sie dem Googlebot-Agent das Abrufen von /.well-known/assetlinks.json ermöglichen. Die meisten Websites können einfach jedem automatischen Agent erlauben, Dateien im Pfad /.well-known/ abzurufen, damit andere Dienste auf die Metadaten in diesen Dateien zugreifen können:

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

  4. Deklariere 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 String asset_statements ist ein JSON-Objekt, das die zu ladenden assetlinks.json-Dateien angibt. Apostrophe und Anführungszeichen im String müssen mit Escapezeichen versehen werden. 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. Sie muss im öffentlichen Kanal veröffentlicht werden, damit Verknüpfungen erfasst werden können.

  6. Optional: Füllen Sie das Smart Lock for Passwords-Partnerformular aus und senden Sie es an uns, um zu bestätigen, dass Sie den Vorgang abgeschlossen haben. Google überprüft regelmäßig, ob über das Formular eingereichte Partnerschaften tatsächlich funktionieren. Bei Problemen werden Sie möglicherweise kontaktiert.

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

Beispiel: Mehrere Apps mit einer Website verknüpfen

Sie können mehrere Apps mit einer Website verknüpfen, indem Sie jede App in der Datei „Digital Assets Link“ angeben. Um beispielsweise die Anwendungen com.example und com.example.pro mit der Website unter https://signin.example.com/ zu verknüpfen, geben Sie beide Anwendungen 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": "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

Sie können Apps mit mehreren Websites verknüpfen, indem Sie jede Website in der Digital Assets Link-Datei angeben und die Datei auf jeder Website hosten. Wenn Sie 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öchten, geben Sie sowohl Apps als auch beide 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 die JSON-Datei, die unter https://m.example.com/.well-known/assetlinks.json gehostet wird, 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>