Si votre application qui utilise Smart Lock pour les mots de passe partage une base de données d'utilisateurs avec votre ou si votre application et votre site Web ont recours à des fournisseurs de connexion fédérée tels que comme Google Sign-In. Vous pouvez associer l'application au site Web les utilisateurs enregistrent leurs identifiants une seule fois, puis se connectent automatiquement l’application et le site web.
Pour associer une application à un site Web, déclarez les associations en hébergeant un Digital Asset Links sur votre site Web et en ajoutant un lien vers le fichier Digital Asset Links au fichier manifeste de votre application.
En hébergeant une déclaration Digital Asset Links sur votre site Web, vous activez également votre site Web pour partager la saisie automatique avec votre application sous Android 8.0 ou version ultérieure.
Prérequis
Le domaine de connexion de votre site Web doit être disponible via HTTPS.
Associer votre application à votre site Web
Créez un fichier JSON Digital Asset Links.
Par exemple, pour déclarer que le site Web
https://signin.example.comet Une application Android portant le nom de packagecom.examplepeut partager la connexion des identifiants, créez un fichier nomméassetlinks.jsonavec le code suivant : contenu:[{ "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
relationest un tableau d'une ou de plusieurs chaînes décrivant la relation déclarée. Pour déclarer que les applications et les sites partagent les identifiants de connexion, spécifiez la chaînedelegate_permission/common.get_login_creds.Le champ
targetest un objet qui spécifie l'élément auquel la déclaration s'applique. Les champs suivants identifient un site Web :namespacewebsiteURL du site Web, au format
https://domain[:optional_port]; pour Exemple :https://www.example.com.Le domain doit être complet. optional_port doit être omis si vous utilisez le port 443 pour HTTPS
Une cible
sitene peut être qu'un domaine racine : vous ne pouvez pas limiter une association d'applications à un sous-répertoire spécifique. N'incluez pas de chemin d'accès dans l'URL, par exemple une barre oblique finale.Les sous-domaines ne sont pas considérés comme identiques : si vous spécifiez domain comme
www.example.com, le domainewww.counter.example.comne sera pas associé à votre application.Les champs suivants identifient une application Android :
namespaceandroid_apppackage_nameNom de package déclaré dans le fichier manifeste de l'application. Exemple : com.example.androidsha256_cert_fingerprintsEmpreinte SHA256 du certificat de signature de votre application. Vous pouvez Exécutez la commande suivante pour générer l'empreinte: $ keytool -list -v -keystore my-release-key.keystore
Consultez la documentation de référence sur Digital Asset Links. pour en savoir plus.
Hébergez le fichier JSON Digital Assets Links à l'emplacement suivant sur le domaine de connexion :
https://domain[:optional_port]/.well-known/assetlinks.json
Par exemple, si votre domaine de connexion est
signin.example.com, hébergez le fichier JSON surhttps://signin.example.com/.well-known/assetlinks.json.Le fichier MIME du fichier Digital Asset Links doit être au format JSON. Assurez-vous que le serveur envoie un en-tête
Content-Type: application/jsondans la réponse.Assurez-vous que votre hôte autorise Google à récupérer votre fichier Digital Asset Links. Si vous avez un fichier
robots.txt, il doit permettre à l'agent Googlebot de récupérer/.well-known/assetlinks.json. La plupart des sites peuvent simplement autoriser n'importe quel agent automatisé à récupérer les fichiers du chemin/.well-known/afin que d'autres services puissent accéder aux métadonnées de ces fichiers :User-agent: * Allow: /.well-known/
Déclarez l'association dans l'application Android.
Ajoutez la ligne suivante au fichier manifeste sous
<application>:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />Ajoutez une ressource de chaîne
asset_statementsau fichierstrings.xml. La chaîneasset_statementsest un objet JSON qui spécifie les fichiersassetlinks.jsonà charger. Vous devez échapper les apostrophes et les guillemets que vous utilisez dans la chaîne. Par exemple :<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
Publiez l'application sur le Google Play Store. Elle doit être rendue publique. pour permettre la récupération des associations.
(Facultatif) Remplissez et envoyez le <ph type="x-smartling-placeholder"></ph> formulaire d'affiliation Smart Lock pour les mots de passe afin d'indiquer que vous avez tout au long du processus. Google vérifie régulièrement si les affiliations envoyés par le biais du formulaire fonctionnent réellement et nous pouvons vous contacter si des problèmes.
Une fois la validation terminée, les utilisateurs de votre application peuvent enregistrer leurs identifiants sur votre application ou votre site Web et d'être automatiquement connecté aux deux.
Exemple: Associer plusieurs applications à un site Web
Vous pouvez associer plusieurs applications à un site Web en spécifiant chacune d'elles dans le champ
Fichier Digital Assets Link. Par exemple, pour associer com.example et
com.example.pro applications dont le site est à l'adresse https://signin.example.com/ (veuillez préciser)
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:
Ajoutez la ligne suivante au fichier manifeste sous
<application>:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />Ajoutez la ressource de chaîne suivante au fichier
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 chacun d'eux dans le champ
Fichier Digital Assets Link et hébergement sur chaque site Web. Par exemple, pour
associer les applications com.example et com.example.pro au site situé à l'adresse
https://signin.example.com/ et https://m.example.com/, à spécifier
les 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 l'adresse e-mail
Fichier de liens vers des ressources:
[{
"include": "https://signin.example.com/.well-known/assetlinks.json"
}]
Enfin, déclarez l'association dans les deux applications:
Ajoutez la ligne suivante au fichier manifeste sous
<application>:<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />Ajoutez la ressource de chaîne suivante au fichier
strings.xml:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://signin.example.com/.well-known/assetlinks.json\" }] </string>