Si la connexion One Tap répond à vos besoins, envisagez de l'utiliser à la place. One Tap a une expérience utilisateur mise à jour et d'autres améliorations.

Activer la connexion automatique entre les applications et les sites Web

Si votre application qui utilise Smart Lock for Passwords partage une base de données d'utilisateurs avec votre site Web (ou si votre application et votre site Web utilisent des fournisseurs de connexion fédérés tels que Google Sign-In), vous pouvez associer l'application au site Web afin que les utilisateurs enregistrent leurs informations d'identification une fois, puis connectez-vous automatiquement à l'application et au site Web.

Pour associer une application à un site Web, déclarez des associations en hébergeant un fichier JSON Digital Asset Links sur votre site Web et en ajoutant un lien vers le fichier Digital Asset Link au manifeste de votre application.

En hébergeant une déclaration de liens d'actifs numériques sur votre site Web, vous permettez également à votre site Web de partager des données de saisie automatique avec votre application lorsqu'elle est exécutée sous Android 8.0 et plus récent.

Conditions préalables

Le domaine de connexion de votre site Web doit être disponible via HTTPS.

Associez votre application à votre site Web

  1. Créez un fichier JSON de liens d'actifs numériques .

    Par exemple, pour déclarer que le site Web https://signin.example.com et une application Android avec le nom de package com.example peuvent partager les informations de connexion, créez un fichier nommé assetlinks.json avec le contenu suivant:

    [{
      "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"
        ]
      }
     }]
    

    Le champ relation est un tableau d'une ou plusieurs chaînes qui décrivent la relation déclarée. Pour déclarer que les applications et les sites partagent les informations de connexion, spécifiez la chaîne delegate_permission/common.get_login_creds .

    Le champ target est un objet qui spécifie l'actif auquel la déclaration s'applique. Les champs suivants identifient un site Web:

    namespace web
    site

    L'URL du site Web, au format https:// domain [: optional_port ] ; par exemple, https://www.example.com .

    Le domain doit être pleinement qualifié., Et optional_port doit être omis lors de l'utilisation du port 443 pour HTTPS.

    Une cible de site ne peut être qu'un domaine racine: vous ne pouvez pas limiter une association d'application à un sous-répertoire spécifique. N'incluez pas de chemin dans l'URL, tel qu'une barre oblique de fin.

    Les sous-domaines ne sont pas considérés comme correspondant: c'est-à-dire que si vous spécifiez le domain comme www.example.com , le domaine www.counter.example.com n'est pas associé à votre application.

    Les champs suivants identifient une application Android:

    namespace android_app
    package_name Le nom du package déclaré dans le manifeste de l'application. Par exemple, com.example.android
    sha256_cert_fingerprints Les empreintes digitales SHA256 du certificat de signature de votre application. Vous pouvez utiliser la commande suivante pour générer l'empreinte digitale:
    $ keytool -list -v -keystore my-release-key.keystore

    Reportez-vous à la référence des liens d'actifs numériques pour plus de détails.

  2. Hébergez le fichier JSON Digital Assets Link à l'emplacement suivant sur le domaine de connexion:

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

    Par exemple, si votre domaine de signin.example.com est signin.example.com , hébergez le fichier JSON à l' https://signin.example.com/.well-known/assetlinks.json .

    Le type MIME du fichier Digital Assets Link doit être JSON. Assurez-vous que le serveur envoie un en Content-Type: application/json tête Content-Type: application/json dans la réponse.

  3. Assurez-vous que votre hébergeur autorise Google à récupérer votre fichier Digital Asset Link. Si vous disposez d'un fichier robots.txt , il doit autoriser l'agent Googlebot à récupérer /.well-known/assetlinks.json . La plupart des sites peuvent simplement permettre à n'importe quel agent automatisé de récupérer des fichiers dans le chemin /.well-known/ afin que d'autres services puissent accéder aux métadonnées de ces fichiers:

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

  4. Déclarez l'association dans l'application Android.

    1. Ajoutez la ligne suivante au fichier manifeste sous <application> :

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. Ajoutez une ressource de chaîne asset_statements au strings.xml . La chaîne asset_statements est un objet JSON qui spécifie les fichiers assetlinks.json à charger. Vous devez échapper toutes les apostrophes et guillemets que vous utilisez dans la chaîne. Par example:

        <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. Publiez l'application sur Google Play Store. Il doit être diffusé sur le canal public pour que les associations puissent être récupérées.

  6. (Facultatif) Remplissez et soumettez le formulaire d'affiliation Smart Lock for Passwords pour indiquer que vous avez suivi le processus. Google vérifie périodiquement si les affiliations soumises via le formulaire fonctionnent réellement et peut vous contacter en cas de problème.

Une fois la vérification terminée, les utilisateurs de votre application peuvent enregistrer leurs informations d'identification sur votre application ou sur votre site Web et être automatiquement connectés aux deux.

Exemple: associer plusieurs applications à un site Web

Vous pouvez associer plusieurs applications à un site Web en spécifiant chaque application dans le fichier Digital Assets Link. Par exemple, pour associer les applications com.example et com.example.pro au site https://signin.example.com/ , spécifiez les deux applications dans le fichier JSON hébergé sur https://signin.example.com/.well-known/assetlinks.json :

[{
  "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"
    ]
  }
}]

Ensuite, déclarez l'association dans les deux applications:

  1. Ajoutez la ligne suivante au fichier manifeste sous <application> :

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Ajoutez la ressource de chaîne suivante au strings.xml :

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

Exemple: associer des applications à plusieurs sites Web

Vous pouvez associer des applications à plusieurs sites Web en spécifiant chaque site Web dans le fichier Digital Assets Link et en hébergeant le fichier sur chaque site Web. Par exemple, pour associer les applications com.example et com.example.pro au site https://signin.example.com/ et https://m.example.com/ , spécifiez les deux applications et les deux sites dans le Fichier JSON hébergé sur https://signin.example.com/.well-known/assetlinks.json :

[{
  "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"
    ]
  }
}]

Ensuite, dans le fichier JSON hébergé sur https://m.example.com/.well-known/assetlinks.json , incluez le fichier principal de liens d'actifs numériques:

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

Enfin, déclarez l'association dans les deux applications:

  1. Ajoutez la ligne suivante au fichier manifeste sous <application> :

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. Ajoutez la ressource de chaîne suivante au strings.xml :

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