Claves de acceso

Una llave de acceso permite a alguien iniciar sesión con su huella digital, rostro o PIN del dispositivo en lugar de escribir una contraseña. Se guarda en su dispositivo, en el gestor de contraseñas o en su teléfono, solo funciona en la web para la que fue creada y no puede ser phishing ni reutilizada en otro lugar. Power Portals Pro añade claves de acceso a las cuentas locales de un portal tanto en React como en Blazor: los usuarios las añaden en su página de cuenta y luego inician sesión con una en un solo paso.

Desactivando las claves de acceso

Las claves de acceso están en donde estén las cuentas locales (LocalAccountsEnabled, activadas por defecto): una clave de acceso es una credencial local, que se mantiene como una contraseña para un contacto. Para un portal que no debería ofrecerlas, se pone PasskeysEnabled en AuthClientOptions false Program.cs. Desactivado, el servidor deja de servir las rutas de la clave de acceso y se niega a iniciar sesión con la clave, las páginas de la cuenta dejan de mostrarlas y las claves de acceso ya guardadas ya no pueden usarse.

Importante

Las claves de acceso se mantienen en la ppp_passkey tabla, que la solución gestionada de Power Portals Pro provisiona. Importa la solución antes de que las páginas de cuenta ofrezcan claves de acceso y asegúrate de que el usuario de la aplicación del portal tenga el rol de usuario de aplicación enviada, que tiene sus privilegios en la mesa.

En las páginas de cuentas

Las páginas de cuenta que generan las plantillas de proyecto muestran claves de acceso siempre que están activadas: un botón de Iniciar sesión con un botón de clave de acceso en la página de inicio de sesión, junto al formulario de contraseña, y una sección de Claves de acceso en la página de perfil donde el usuario añade, renombra y elimina las suyas. Ambas leen passkeysEnabled desde GET /api/auth/options, o AuthClientOptions en una página de Blazor Server, y no muestran nada mientras las claves de acceso están apagadas.

Los componentes

Dos componentes, en ambas pilas, hacen el trabajo. PasskeySignInButton Inicia sesión con una clave de acceso que elija la persona y no muestra nada en un navegador que no pueda usar claves de acceso. PasskeyManager Lista las claves de acceso de los usuarios que han iniciado sesión y les permite añadirlas, renombrarlas y eliminarlas. Muéstranlas solo mientras las claves de acceso estén activadas.

Reaccionar

Blazor

Una vez iniciado sesión, el botón Blazor carga la página de nuevo en ReturnUrl, así que todo lo que aparece ve el usuario iniciado sesión. OnResult Entrega a la página los resultados que gestiona por sí misma, como una cuenta bloqueada. La parte del navegador de la ceremonia se ejecuta con los propios scripts de los componentes, así que funcionan igual bajo Blazor Server, WebAssembly y Auto.

Cómo funciona una ceremonia

Cada operación de clave de acceso son dos solicitudes, basadas en el soporte de ASP.NET clave de acceso de Core Identity: la primera devuelve las opciones que el navegador pasa a navigator.credentials, y la segunda devuelve lo que el navegador ha respondido. Identity mantiene el desafío entre ellos en una cookie.

Seguridad

Nota

Los navegadores permiten claves de acceso solo en orígenes seguros: https, o localhost durante el desarrollo.