Conditions préalables

L'un des principaux prérequis pour implémenter une expérience de connexion fluide avec Credential Manager dans votre application et sur votre site Web consiste à établir une association sécurisée entre eux. Pour ce faire, ils utilisent des fichiers Digital Asset Links, qui permettent aux fournisseurs d'identifiants de partager des identifiants de manière sécurisée entre votre application et votre site Web. Par exemple, un site Web peut déclarer qu'il partage des identifiants avec une application Android ou un autre site Web à l'aide d'un fichier Digital Asset Links. L'utilisation des liens Digital Asset permet à vos utilisateurs de bénéficier d'une expérience de connexion fluide et d'utiliser les mêmes identifiants enregistrés sur les applications et sites Web associés.

Pour permettre aux fournisseurs d'identifiants d'utiliser des clés d'accès et des mots de passe de manière courante dans votre application et sur votre site Web, créez un fichier Digital Asset Links pour votre application en procédant comme suit :

Créez un fichier nommé assetlinks.json avec la structure suivante :

[
    {
    "relation" : [
        "<array_of_permissions_granted_to_app>"
    ],
    "target" : {
        "namespace" : "android_app",
        "package_name" : "<android_application_package_name>",
        "sha256_cert_fingerprints" : [
            "<sha256_certificate_fingerprint_of_signing_key>"
]
    }
}
]
  • relation : 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 des identifiants de connexion, spécifiez les relations suivantes dans un tableau :

    • delegate_permission/common.handle_all_urls : cette relation permet d'utiliser les liens vers une application Android, qui permettent à votre application Android de gérer toutes les URL Web d'un domaine spécifique.

    • delegate_permission/common.get_login_creds : cette relation permet de partager des identifiants entre votre site Web et votre application Android.

  • target : objet qui spécifie l'élément auquel la déclaration s'applique.

    • target.namespace : définissez cette valeur sur android_app.
    • target.package_name : définissez cette valeur sur le nom du package déclaré dans le fichier manifeste de l'application (par exemple, com.example.android).
  • sha256_cert_fingerprints : empreintes SHA256 du certificat de signature de votre application. Pour récupérer l'empreinte SHA256 de votre application, consultez Déclarer des associations de sites.

Voici un exemple de cible pour une application :

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "android_app",
      "package_name" : "com.example.android",
      "sha256_cert_fingerprints" : [
        SHA_HEX_VALUE
      ]
    }
  }
]

Hébergez le fichier Digital Asset Links à l'emplacement suivant sur le domaine de connexion de votre site Web :

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

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

Le type MIME du fichier Digital Asset Links doit être JSON. Assurez-vous que le serveur envoie un en-tête Content-Type: application/json dans la réponse, avec l'état HTTP défini sur 200.

3. Autoriser la récupération du fichier Digital Asset Links

Mettez à jour votre hôte pour autoriser Google à récupérer votre fichier Digital Asset Links. La plupart des sites Web autorisent 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.

Si vous avez un fichier robots.txt, autorisez les robots d'exploration Web à récupérer /.well-known/assetlinks.json en mettant à jour le fichier robots.txt comme suit :

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

4. Mettre à jour le fichier manifeste de l'application

Dans le fichier manifeste de votre application, ajoutez les lignes suivantes sous <application> :

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

5. Configurer Digital Asset Links pour les mots de passe

Si vous utilisez le Gestionnaire d'identifiants pour les mots de passe, vous devez effectuer une étape supplémentaire pour configurer les liens vers les ressources numériques.

Ajoutez un objet qui spécifie les fichiers assetlinks.json à charger dans le fichier manifeste. Vous devez échapper les apostrophes et les guillemets que vous utilisez dans la chaîne, comme illustré dans l'exemple suivant :

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

Le lien https://signin.example.com/.well-known/assetlinks.json doit renvoyer une réponse HTTP 200 et comporter un en-tête Content-Type de application/json. La validation échoue si la réponse comporte une redirection HTTP 301 ou 302, ou un Content-Type non JSON.

L'exemple suivant montre un exemple de requête et les en-têtes de réponse attendus :

> 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

Étapes suivantes

Après avoir ajouté les dépendances nécessaires et configuré les liens de ressources numériques pour les clés d'accès, vous pouvez utiliser le Gestionnaire d'identifiants pour implémenter les méthodes d'authentification compatibles : clés d'accès et Se connecter avec Google. Pour commencer, consultez les guides du développeur suivants :