Exemple: Partager des identifiants entre plusieurs sites Web et plusieurs applications Android

Pour configurer le partage d'identifiants sur plusieurs sites Web et plusieurs applications Android, vous devez:

  • Désigner un domaine principal: choisissez une URL comme point de référence principal pour les liens.
  • Créer des fichiers assetlinks.json :
    • Domaine principal: créez un fichier assetlinks.json sur votre domaine principal qui liste tous les domaines partageant des identifiants.
    • Autres domaines: créez un fichier assetlinks.json sur chacun des autres domaines, chacun redirigeant vers le domaine principal.
  • Configurez l'association d'éléments numériques dans le fichier manifeste de chaque application: configurez chaque application pour qu'elle redirige vers le fichier assetlinks.json du domaine principal.

Dans l'exemple suivant, nous avons désigné example.com comme domaine principal, et tous les autres domaines listés partagent des identifiants avec example.com et entre eux.

Les deux applications avec les noms de package suivants partagent également des identifiants avec tous les sites Web et entre eux:

  • com.example.android.myapplication
  • com.example.appname

Avant de configurer le partage d'identifiants, vous devez remplir les conditions préalables.

Pour déclarer le partage d'identifiants entre ces sites Web et ces applications Android:

  1. Créez un fichier assetlinks.json avec le contenu suivant:

    [
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://example.com"
        }
      },
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://example.org"
        }
      },
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://example.net"
        }
      },
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://myownpersonaldomain.com"
        }
      },
      {
        "relation" : [
          "delegate_permission/common.get_login_creds"
        ],
        "target" : {
          "namespace" : "android_app",
          "package_name" : "com.example.android.myapplication",
          "sha256_cert_fingerprints" : [ "AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00:AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00"
          ]
        }
      },
      {
        "relation" : [
          "delegate_permission/common.get_login_creds"
        ],
        "target" : {
          "namespace" : "android_app",
          "package_name" : "com.example.appname",
          "sha256_cert_fingerprints" : [ "00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF"
          ]
        }
      }
    ]
    
  2. Hébergez le fichier JSON Digital Asset Links à l'emplacement well-known correspondant sur le domaine principal, dans ce cas : https://example.com/.well-known/assetlinks.json.

  3. Créez un autre fichier assetlinks.json avec le contenu suivant:

    [
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "example.com"
        }
      }
    ]
    
  4. Hébergez des copies de ce fichier JSON Digital Asset Links à l'emplacement suivant sur les autres domaines, dans ce cas:

    • example.org/.well-known/assetlinks.json
    • example.net/.well-known/assetlinks.json
    • mypersonaldomain.com/.well-known/assetlinks.json
  5. Ajoutez la ligne suivante aux deux fichiers manifestes d'applications Android sous <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  6. Configurez l'association d'assets numériques dans le fichier manifeste en déclarant l'association dans l'application Android. Ajoutez un objet qui spécifie les fichiers assetlinks.json à charger. Dans ce cas :

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

Une fois ces étapes effectuées, vous avez configuré le partage fluide des identifiants sur plusieurs sites Web et applications Android.