API FIDO2 para Android, API FIDO2 para Android

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

La API de FIDO2 permite que las aplicaciones de Android creen y utilicen credenciales sólidas basadas en claves públicas certificadas con el fin de autenticar a los usuarios. La API proporciona una implementación de WebAuthn Client , que admite el uso de autenticadores (llaves de seguridad) de roaming BLE, NFC y USB, así como un autenticador de plataforma, que permite al usuario autenticarse usando su huella digital o bloqueo de pantalla.

Integración

El punto de entrada de la API de FIDO2 es Fido2ApiClient .

La API admite dos operaciones:

  • El registro se realiza una vez por autenticador por cuenta, cuando el usuario asocia un autenticador a una cuenta.
  • La firma se realiza cada vez que la parte que confía desea autenticar a un usuario.

Tanto el registro como la firma requieren la interacción del usuario.

Puede encontrar una aplicación de muestra que demuestra el uso de la API en https://github.com/android/security-samples/tree/master/Fido .

Interoperabilidad con su sitio web

Es sencillo permitir que los usuarios compartan credenciales sin problemas en su sitio web y aplicación de Android. Para hacerlo, aproveche Digital Asset Links . Puede declarar asociaciones alojando un archivo JSON de Digital Asset Links en su sitio web y agregando un enlace al archivo de Digital Asset Link en el manifiesto de su aplicación.

Por ejemplo, si desea asociar https://example.com con una aplicación de Android com.example.android , aquí hay 3 pasos obligatorios:

Paso 1. assetlinks.json en su dominio

Cree un archivo JSON como este y alójelo en https://example.com/.well-known/assetlinks.json .

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "web",
      "site" : "https://example.com"
    }
  },
  {
    "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" : [
         "DE:AD:BE:EF"
      ]
    }
  }
]

Asegúrese de que se pueda rastrear desde Google y se sirva con el encabezado HTTP Content-Type: application/json .

sha256_cert_fingerprints son las huellas digitales SHA256 del certificado de firma de su aplicación. Encuentre más detalles en la documentación de Android App Links .

En su aplicación de Android, agregue la siguiente línea al archivo de manifiesto en <application> :

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

Paso 3. Agregue un recurso de cadena asset_statements al archivo strings.xml

La cadena asset_statements es un objeto JSON que especifica los archivos assetlinks.json para cargar. Debe escapar cualquier apóstrofo y comillas que use en la cadena. Por ejemplo:

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

Para obtener más información sobre cómo asociar su aplicación y su sitio web, lea la documentación de SmartLock for Passwords en Android .

,

La API de FIDO2 permite que las aplicaciones de Android creen y utilicen credenciales sólidas basadas en claves públicas certificadas con el fin de autenticar a los usuarios. La API proporciona una implementación de WebAuthn Client , que admite el uso de autenticadores (llaves de seguridad) de roaming BLE, NFC y USB, así como un autenticador de plataforma, que permite al usuario autenticarse usando su huella digital o bloqueo de pantalla.

Integración

El punto de entrada de la API de FIDO2 es Fido2ApiClient .

La API admite dos operaciones:

  • El registro se realiza una vez por autenticador por cuenta, cuando el usuario asocia un autenticador a una cuenta.
  • La firma se realiza cada vez que la parte que confía desea autenticar a un usuario.

Tanto el registro como la firma requieren la interacción del usuario.

Puede encontrar una aplicación de muestra que demuestra el uso de la API en https://github.com/android/security-samples/tree/master/Fido .

Interoperabilidad con su sitio web

Es sencillo permitir que los usuarios compartan credenciales sin problemas en su sitio web y aplicación de Android. Para hacerlo, aproveche Digital Asset Links . Puede declarar asociaciones alojando un archivo JSON de Digital Asset Links en su sitio web y agregando un enlace al archivo de Digital Asset Link en el manifiesto de su aplicación.

Por ejemplo, si desea asociar https://example.com con una aplicación de Android com.example.android , aquí hay 3 pasos obligatorios:

Paso 1. assetlinks.json en su dominio

Cree un archivo JSON como este y alójelo en https://example.com/.well-known/assetlinks.json .

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "web",
      "site" : "https://example.com"
    }
  },
  {
    "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" : [
         "DE:AD:BE:EF"
      ]
    }
  }
]

Asegúrese de que se pueda rastrear desde Google y se sirva con el encabezado HTTP Content-Type: application/json .

sha256_cert_fingerprints son las huellas digitales SHA256 del certificado de firma de su aplicación. Encuentre más detalles en la documentación de Android App Links .

En su aplicación de Android, agregue la siguiente línea al archivo de manifiesto en <application> :

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

Paso 3. Agregue un recurso de cadena asset_statements al archivo strings.xml

La cadena asset_statements es un objeto JSON que especifica los archivos assetlinks.json para cargar. Debe escapar cualquier apóstrofo y comillas que use en la cadena. Por ejemplo:

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

Para obtener más información sobre cómo asociar su aplicación y su sitio web, lea la documentación de SmartLock for Passwords en Android .