1. Descripción general
¿Tus usuarios acceden a tu servicio a través de sitios web y apps para Android? Obligarlos a acceder por separado a cada plataforma genera fricción innecesaria y puede provocar abandonos.
Los vínculos de recursos digitales (DAL) solucionan este problema, ya que te permiten declarar asociaciones entre tus sitios web y tus apps. Esto permite que los administradores de contraseñas, como el Administrador de contraseñas de Google, compartan las contraseñas y las llaves de acceso guardadas entre sí.
Específicamente, configurar tu archivo de Vínculos de recursos digitales requiere diferentes relaciones según lo que quieras compartir:
- Para contraseñas: Incluir
delegate_permission/common.get_login_credspermite que los administradores de contraseñas compartan las contraseñas guardadas entre tu sitio web y tu aplicación. - Para las llaves de acceso: Debido a que las llaves de acceso están estrictamente vinculadas a un dominio web específico, Android requiere una prueba de propiedad del dominio. Por lo tanto, debes incluir
delegate_permission/common.handle_all_urls. Si bien es posible que reconozcas este permiso como el que se usa para los Android App Links (vinculación directa), también es el requisito estricto para permitir que las llaves de acceso creadas en una plataforma se usen en la otra.
¿El resultado? Los usuarios pueden acceder sin problemas a todas tus plataformas afiliadas con las contraseñas o llaves de acceso guardadas para solo una de ellas.

Implementar el uso compartido de credenciales eficiente puede mejorar significativamente la experiencia del usuario. Por ejemplo, eBay experimentó un aumento del 10% en el éxito de los accesos después de implementar la DAL para el uso compartido de credenciales.
En este codelab, aprenderás a usar los vínculos de recursos digitales para habilitar el uso compartido de credenciales entre tu sitio web y tu app para Android.
Requisitos previos
- Conocimientos básicos sobre JSON y desarrollo para Android
- Conocimiento de los requisitos previos de Android Credential Manager
Qué aprenderás
- Cómo configurar el uso compartido de credenciales con Google Play Console (recomendado)
- Cómo crear manualmente un archivo
assetlinks.json - Cómo configurar una app para Android para la asociación manual
- Cómo habilitar las llaves de acceso en una app para Android asociándola con un dominio de sitio web
- Cómo usar herramientas para generar y validar tu configuración
Requisitos
- Un sitio web: La capacidad de alojar un archivo JSON en
https://{your-domain}/.well-known/assetlinks.json - Una app para Android:
- Para el método de Play Console: Una app publicada en Google Play
- Para el método manual: Un proyecto de Android que puedes modificar y compilar. Ten en cuenta que, para que funcione el uso compartido de credenciales con el Administrador de contraseñas de Google, la app debe publicarse en Google Play.
Cómo funciona
Para que el uso compartido de credenciales funcione, debes establecer una confianza bidireccional:
- Web -> App: Tu sitio web debe alojar un archivo
assetlinks.jsonque declare que confía en tu app para Android. - De la app a la Web: Tu app para Android debe estar configurada para confiar en tu sitio web.
Veremos dos formas de hacerlo: la automática, con Google Play Console (recomendada), y la manual, con vínculos de recursos digitales directamente.
2. Configuración con Google Play Console (recomendado)
La forma más sencilla de habilitar el uso compartido de credenciales entre tu sitio web y tu app para Android es a través de Google Play Console. Este método te permite asociar tu app con tu sitio web sin necesidad de modificar el manifiesto de la app ni publicar una nueva versión. Google Play administra la asociación del lado de la app por ti.
Requisitos previos
- Permisos de Play Console para acceder a la página de vínculos directos
- Capacidad para publicar un archivo
/.well-known/assetlinks.jsonen tu dominio
Para obtener más información sobre los vínculos directos, consulta Android App Links.
Pasos
- En Play Console, navega a Crecimiento > Vínculos directos.
- Si tu dominio no aparece en la lista, haz clic en Agregar dominio en Configuración de la app.
- Busca tu dominio y ubica la columna Uso compartido de credenciales. Haz clic en Activar (o asegúrate de que Habilitar el uso compartido de credenciales esté activado para los dominios nuevos).
- Copia el fragmento de código JSON que generó Play Console.
- Publica este contenido JSON en
https://{your-domain}/.well-known/assetlinks.json. (Si ya tienes este archivo, agrégale la nueva declaración). - En Play Console, haz clic en Crear asociación con el sitio web o Activar el uso compartido de credenciales.
Play Console ahora verificará la configuración de tu hosting.

Para que el uso compartido de credenciales funcione, tu host de sitio web debe cumplir con los siguientes requisitos:
- Se puede acceder a la URL a través de HTTPS.
- El servidor responde con
Content-Type: application/json. - Se puede acceder a la URL sin redireccionamientos.
Una vez que se verifique, el uso compartido de credenciales estará activo. Los cambios de configuración pueden tardar entre 1 y 2 semanas en propagarse.
3. Configura manualmente con Vínculos de recursos digitales
¿Necesitas más control? ¿O no tienes acceso a Play Console? Puedes configurar el uso compartido de credenciales entre tu sitio web y tu app para Android de forma manual. Esto implica dos tareas principales: alojar el archivo JSON en tu sitio y actualizar el manifiesto de tu app para Android.
1. Obtén la huella digital de tu app
Antes de configurar el uso compartido de credenciales eficiente, asegúrate de tener lo siguiente para cada plataforma:
Para cada app para Android, haz lo siguiente:
- El ID de aplicación para Android, como se declara en el archivo
build.gradlede la app. - Las huellas digitales SHA256 del certificado de firma.
- (Recomendado) Acceso del usuario implementado con la API de Credential Manager.
2. Crea el archivo de asociación
Debes crear un archivo assetlinks.json que declare las relaciones entre tu sitio web y tu app. Usa delegate_permission/common.get_login_creds para otorgar permiso para compartir contraseñas y delegate_permission/common.handle_all_urls para habilitar los vínculos directos y compartir llaves de acceso.
Crea un archivo llamado assetlinks.json con el siguiente contenido. Reemplaza los valores de ejemplo por la URL, el nombre del paquete y la huella digital de tu sitio:
[{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints":
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
}
}]
3. Aloja el archivo
Sube tu archivo assetlinks.json al directorio .well-known en la raíz de tu dominio.
Ubicación: https://{your-domain}/.well-known/assetlinks.json
Para que el uso compartido de credenciales funcione, tu host de sitio web debe cumplir con los siguientes requisitos:
- Se puede acceder a la URL a través de HTTPS.
- El servidor responde con
Content-Type: application/json. - Se puede acceder a la URL sin redireccionamientos.

4. Configura tu app para Android
Ahora, dile a tu app para Android que confíe en el sitio web. Agregarás una referencia en el manifiesto que apunte a un archivo de recursos que contenga tu URL de assetlinks.json.
1. Agrega un recurso de cadena
En res/values/strings.xml, agrega una nueva cadena asset_statements. Ten en cuenta las comillas de escape.
<resources>
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://www.example.com/.well-known/assetlinks.json\"
}]
</string>
</resources>
2. Agrega metadatos al manifiesto
En AndroidManifest.xml, agrega una etiqueta <meta-data> dentro del elemento <application> que haga referencia a este recurso de cadena:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Después de completar estos pasos y publicar una nueva versión de tu app para Android, los administradores de contraseñas que admitan vínculos de recursos digitales (como el Administrador de contraseñas de Google) podrán sugerir credenciales guardadas para www.example.com cuando el usuario intente acceder a com.example.app y viceversa.
4. Verifica la configuración
Antes de realizar el envío, es fundamental que verifiques la configuración de los Vínculos de recursos digitales. Los archivos JSON incorrectos o los archivos a los que no se puede acceder fallarán de forma silenciosa.
Usa la herramienta oficial Generador y validador de declaraciones.

- Ingresa el dominio del sitio y el nombre del paquete de la app.
- Haz clic en Probar declaración.
- La herramienta verificará si el archivo
assetlinks.jsonestá alojado correctamente y contiene la asociación válida.
5. Compartir credenciales entre varios sitios web

Si tienes varios sitios web que comparten el mismo sistema de acceso (por ejemplo, example.com y example.co.uk), puedes declararlos como afiliados para que se puedan compartir las credenciales entre ellos.
Compartir contraseñas entre varios sitios web
Para compartir contraseñas entre sitios web, puedes declarar una asociación de web a web con delegate_permission/common.get_login_creds.
Por ejemplo, para que example.com comparta contraseñas con example.co.uk, el archivo assetlinks.json alojado en https://example.com/.well-known/assetlinks.json debe incluir una declaración dirigida a example.co.uk:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://example.co.uk"
}
}]
Del mismo modo, https://example.co.uk/.well-known/assetlinks.json debe incluir una instrucción que se dirija a example.com.
Cómo compartir llaves de acceso entre varios sitios web
Para permitir que varios sitios web compartan las mismas llaves de acceso, deben usar el mismo ID de entidad de confianza (ID de RP). En WebAuthn y las llaves de acceso, el ID de RP especifica el alcance de una credencial por nombre de dominio. Cuando creas una llave de acceso, esta se vincula a un ID de RP específico y solo se puede usar en dominios que se encuentren dentro del alcance de ese ID. Definir correctamente tu ID de RP garantiza una experiencia fluida con llaves de acceso en subdominios, orígenes entre sitios y apps para dispositivos móviles propias. Puedes obtener más información para configurar el ID de RP en Understanding Relying Party ID (RP ID). Con las Related Origin Requests, un sitio web puede especificar otros orígenes que tienen permiso para usar su ID de RP, lo que permite que los usuarios reutilicen la misma llave de acceso en varios sitios que usted opera. Ten en cuenta que esto es diferente de compartir llaves de acceso entre un sitio web y una app para Android, lo que usa delegate_permission/common.handle_all_urls en los Vínculos de recursos digitales.
Por ejemplo, si quieres que example.com y example.co.uk compartan llaves de acceso, puedes decidir que example.com sea el ID de RP canónico. Para que esto funcione, example.co.uk debe usar rpId: 'example.com' en sus llamadas a la API de WebAuthn, y example.com debe alojar un archivo en https://example.com/.well-known/webauthn para incluir example.co.uk en la lista de entidades permitidas:
{
"origins": [
"https://example.co.uk"
]
}
Esto permite que example.co.uk cree y use llaves de acceso asociadas con example.com.
6. Conclusión
¡Felicitaciones! Configuraste correctamente el uso compartido de credenciales eficiente.
Ahora tus usuarios pueden guardar una contraseña y una llave de acceso en tu sitio web, y usarlas para acceder a tu app para Android con un solo toque (y viceversa). Este simple cambio puede aumentar significativamente tus tasas de conversión de acceso y la satisfacción de los usuarios.
Próximos pasos
- Consulta la Documentación oficial de Digital Asset Links.
- Obtén más información sobre los conceptos básicos del uso compartido de credenciales.
- Lee el caso de éxito de eBay para ver el impacto.