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.
Configurare Digital Asset Links tra l'app e il sito web
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:
1. Crea il file JSON Digital Asset Links
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 suandroid_app.target.package_name: imposta questo valore sul nome pacchetto dichiarato nel manifest dell'app, ad esempiocom.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
]
}
}
]
2. Ospita il file JSON Digital Asset Links
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:
- Configurare le passkey con Credential Manager: scopri come implementare le passkey, il metodo moderno e resistente al phishing per un'autenticazione sicura e intuitiva.
- Configurare Accedi con Google con Credential Manager: integra "Accedi con Google" per semplificare l'accesso degli utenti con gli Account Google.
- Risolvere gli errori comuni di Gestione credenziali: scopri come risolvere gli errori comuni di Gestione credenziali.
- Integra l'autenticazione Firebase: consenti agli utenti di autenticarsi con Firebase utilizzando i propri Account Google.