Chaves de acesso

Uma chave de acesso permite que alguém faça login com sua impressão digital, rosto ou PIN do dispositivo, em vez de digitar uma senha. Ela fica no dispositivo, no gerenciador de senhas ou no celular, funciona apenas no site para o qual foi criada, e não pode ser falsificada ou reutilizada em outro lugar. O Power Portals Pro adiciona chaves de acesso às contas locais de um portal tanto no React quanto no Blazor: os usuários as adicionam na página da conta e depois fazem login com uma em um único passo.

Desligando as chaves de acesso

As chaves de acesso estão onde quer que as contas locais estejam (LocalAccountsEnabled, ativadas por padrão): uma chave de acesso é uma credencial local, mantida como um contato como uma senha. Para um portal que não deveria oferecer, defina PasskeysEnabled em AuthClientOptions false Program.csem . Desligado, o servidor para de fornecer as rotas da chave de acesso e recusa o login da chave de entrada, as páginas da conta param de mostrá-las, e as chaves já salvas não podem mais ser usadas.

Importante

As chaves de acesso são mantidas na ppp_passkey tabela, que a solução gerenciada do Power Portals Pro providencia. Importe a solução antes que as páginas de conta ofereçam as chaves de acesso e certifique-se de que o usuário da aplicação do portal detenha o papel de usuário de aplicação enviado, que carrega seus privilégios na mesa.

Nas páginas de contas

As páginas de conta geradas pelos modelos de projeto mostram chaves de acesso sempre que estão ativadas: um botão de Entrar com um botão de chave de acesso na página de login, ao lado do formulário de senha, e uma seção de Chaves de Acesso na página de perfil onde o usuário adiciona, renomeia e remove as deles. Ambas lêem passkeysEnabled de GET /api/auth/options, ou AuthClientOptions em uma página do Blazor Server, e não mostram nada enquanto as chaves de acesso estão desligadas.

Os componentes

Dois componentes, em ambas as pilhas, fazem o trabalho. PasskeySignInButton Faz login com uma chave de acesso escolhida pela pessoa e não renderiza nada em um navegador que não possa usar chaves de acesso. PasskeyManager Lista as chaves de acesso dos usuários logados e permite que ele adicione, renomeie e remova. Mostre-as apenas enquanto as chaves de acesso estiverem ativadas.

React

Blazor

Uma vez logado, o botão Blazor carrega a página novamente em ReturnUrl, então tudo nela mostra o usuário logado. OnResult entrega à página os resultados que ela gerencia por conta própria, como uma conta bloqueada. A parte do navegador da cerimônia roda nos próprios scripts dos componentes, então eles funcionam igual sob Blazor Server, WebAssembly e Auto.

Como funciona uma cerimônia

Cada operação de chave de acesso é composta por duas solicitações, construídas sobre o suporte de ASP.NET Core Identity: a primeira retorna as opções que o navegador passa para navigator.credentials, e a segunda retorna o que o navegador respondeu. A Identity mantém o desafio entre eles em um cookie.

Segurança

Nota

Navegadores permitem chaves de acesso apenas em origens seguras: https, ou localhost durante o desenvolvimento.