Ejemplo: Comparte credenciales entre varios sitios web y varios dispositivos Android

Para configurar el uso compartido de credenciales en varios sitios web y apps para Android debes hacer lo siguiente:

  • Designa un dominio principal: Elige una URL como punto de referencia principal para enlaces.
  • Crea archivos assetlinks.json:
    • Dominio principal: Crea un archivo assetlinks.json en tu dominio principal que enumere todos los dominios comparten credenciales.
    • Otros dominios: Crea un archivo assetlinks.json en cada uno de los otros dominios dominios, cada uno de los cuales se vincula con el dominio principal.
  • Configurar la vinculación de recursos digitales en el manifiesto de cada app: Configura cada app para el vínculo al archivo assetlinks.json en el dominio principal.

En el siguiente ejemplo, designamos example.com como dominio principal, y todos los demás dominios enumerados comparten credenciales con example.com y entre ellas.

Las dos apps con los siguientes nombres de paquete también comparten credenciales con todos los sitios web y entre ellos:

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

Antes de configurar el uso compartido de credenciales, debes completar los requisitos previos.

Para declarar el uso compartido de credenciales en estos sitios web y apps para Android, sigue estos pasos:

  1. Crea un archivo assetlinks.json con el siguiente contenido:

    [
      {
        "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. Aloje el archivo JSON de Vínculos de recursos digitales en el recurso conocido correspondiente ubicación en el dominio principal, en este caso: https://example.com/.well-known/assetlinks.json

  3. Crea otro archivo assetlinks.json con el siguiente contenido:

    [
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "example.com"
        }
      }
    ]
    
  4. Aloje copias de este archivo JSON de Vínculos de recursos digitales en la siguiente ubicación en los otros dominios, en este caso:

    • example.org/.well-known/assetlinks.json
    • example.net/.well-known/assetlinks.json
    • mypersonaldomain.com/.well-known/assetlinks.json
  5. Agrega la siguiente línea a ambos archivos de manifiesto de apps para Android en <application>

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  6. Configura la vinculación de recursos digitales en el manifiesto declarando la asociación en la aplicación para Android. Agrega un objeto que especifique los archivos assetlinks.json cargar. En este caso, ocurre lo siguiente:

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

Después de seguir estos pasos, habrás configurado con éxito la credencial sin interrupciones. el uso compartido entre varios sitios web y apps para Android.