Prerequisiti

Un prerequisito fondamentale per implementare un'esperienza di accesso senza interruzioni con Credential Manager nella tua app e nel tuo sito web è stabilire un'associazione sicura tra loro. Ciò si ottiene utilizzando i file Digital Asset Links, che consentono ai fornitori di credenziali di condividere in modo sicuro le credenziali tra la tua app e il tuo sito web. Ad esempio, un sito web può dichiarare di condividere le credenziali con un'app per Android o un altro sito web utilizzando un file Digital Asset Links. L'utilizzo dei Digital Asset Links consente agli utenti di usufruire di un'esperienza di accesso senza problemi e di utilizzare le stesse credenziali salvate su app e siti web associati.

Per consentire ai fornitori di credenziali di utilizzare passkey e password comunemente nella tua app e nel tuo sito web, crea un file Digital Asset Links per la tua app seguendo questi passaggi:

Crea un file denominato assetlinks.json con la seguente struttura:

[
    {
    "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: un array di una o più stringhe che descrivono la relazione dichiarata. Per dichiarare che app e siti condividono le credenziali di accesso, specifica le seguenti relazioni in un array:

    • delegate_permission/common.handle_all_urls: questa relazione attiva i link alle app per Android, che consentono alla tua app per Android di gestire tutti gli URL web per un dominio specifico.

    • delegate_permission/common.get_login_creds: questa relazione consente la condivisione delle credenziali tra il tuo sito web e la tua app per Android.

  • target: un oggetto che specifica l'asset a cui si applica la dichiarazione.

    • target.namespace: imposta questo valore su android_app.
    • target.package_name: imposta questo valore sul nome pacchetto dichiarato nel manifest dell'app, ad esempio com.example.android.
  • sha256_cert_fingerprints: le impronte SHA256 del certificato di firma della tua app. Per recuperare l'impronta SHA256 della tua app, consulta Dichiarare le associazioni di siti web.

Un esempio di target per un'app è il seguente:

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

Ospita il file Digital Asset Links nel seguente percorso del dominio di accesso del tuo sito web:

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

Ad esempio, se il tuo dominio di accesso è signin.example.com, ospita il file all'indirizzo: https://signin.example.com/.well-known/assetlinks.json.

Il tipo MIME del file Digital Asset Links deve essere JSON. Assicurati che il server invii un'intestazione Content-Type: application/json nella risposta, con lo stato HTTP impostato su 200.

3. Consenti il recupero del file Digital Asset Links

Aggiorna l'host per consentire a Google di recuperare il file Digital Asset Links. La maggior parte dei siti web consente a qualsiasi agente automatizzato di recuperare i file nel percorso /.well-known/ in modo che altri servizi possano accedere ai metadati di questi file.

Se hai un file robots.txt, consenti ai crawler web di recuperare /.well-known/assetlinks.json aggiornando il file robots.txt nel seguente modo:

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

4. Aggiorna il manifest dell'app

Nel file manifest dell'app, aggiungi le seguenti righe sotto <application>:

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

5. Configurare Digital Asset Links per le password

Se utilizzi Credential Manager per le password, devi completare un passaggio aggiuntivo per configurare i collegamenti delle risorse digitali.

Aggiungi un oggetto che specifica i file assetlinks.json da caricare nel file manifest. Devi utilizzare l'interpretazione letterale di eventuali apostrofi e virgolette che utilizzi nella stringa come mostrato nell'esempio seguente:

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

Il link https://signin.example.com/.well-known/assetlinks.json deve restituire una risposta HTTP 200 e avere un'intestazione Content-Type di application/json. La verifica non riesce se la risposta ha un reindirizzamento HTTP 301 o 302 o un Content-Type non JSON.

L'esempio seguente mostra una richiesta di esempio e le intestazioni di risposta previste:

> 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

Passaggi successivi

Dopo aver aggiunto le dipendenze necessarie e configurato Digital Asset Links per le passkey, puoi utilizzare Credential Manager per implementare i metodi di autenticazione supportati: passkey e Accedi con Google. Per iniziare, consulta le seguenti guide per gli sviluppatori: