As credenciais digitais são documentos criptograficamente verificáveis que podem ser usados para autenticar, autorizar ou fornecer informações sobre um usuário. Normalmente, são itens como carteiras de motorista digitais, passaportes digitais, cartões de embarque etc. Eles ficam em contêineres virtuais chamados carteiras digitais e fazem parte de um padrão do W3C que especifica como acessá-los e recuperá-los. Esse padrão é implementado para casos de uso na Web com a API Credential Management do W3C e no Android, com a API DigitalCredential do Gerenciador de credenciais.
Entender as credenciais digitais
No mundo físico, uma pessoa pode guardar a identidade na carteira e apresentar a um solicitante quando necessário:
Nesse caso, um usuário geralmente tem uma única carteira e recupera as credenciais solicitadas da carteira para apresentar ao solicitante. As carteiras são basicamente intercambiáveis e geralmente podem armazenar as mesmas coisas.
As credenciais digitais têm algumas diferenças principais:
- Espera-se que os usuários tenham várias carteiras, também conhecidas como titulares, que podem conter várias credenciais diferentes. As carteiras digitais determinam quais credenciais podem ser armazenadas nelas.
- O solicitante agora é um aplicativo em vez de uma pessoa real e é chamado de verificador.
- A apresentação de credenciais acontece no software, o que significa que uma superfície de API recupera e apresenta as credenciais. No Android, isso é o Credential Manager.
Assim, o Gerenciador de credenciais assume várias funções que antes eram tratadas pelo usuário:
- No Android, as carteiras precisam registrar os metadados das credenciais com o Gerenciador de credenciais para serem listadas na interface dele.
- O Gerenciador de credenciais corresponde às credenciais em várias carteiras com base na solicitação e apresenta uma lista para o usuário selecionar.
- Quando o usuário seleciona uma credencial na lista, o Gerenciador de credenciais invoca a carteira, que processa o restante da transação (mostrando interfaces, etc.) e retorna a credencial ao aplicativo.
Esse fluxo é mostrado aqui:
Experiência do usuário
Como mostrado no fluxo do Android, o usuário só precisa interagir uma vez com a interface do Credential Manager para selecionar a credencial adequada. Confira um exemplo de como o seletor aparece:
Padrões
As solicitações de credenciais digitais são criadas usando o padrão OpenID4VP. Confira exemplos de solicitações no site de demonstração de credenciais digitais.
As respostas de credenciais digitais geralmente são retornadas em um formato de credencial padronizado. Eles são mantidos por diferentes órgãos de padrões e incluem Credenciais verificáveis do W3C, sd-jwt e mdoc.
Protocolos personalizados também são viáveis, mas recomendamos usar um dos protocolos padrão no aplicativo.
Experimente
Você pode testar o fluxo de credenciais digitais em várias plataformas com uma carteira do Android e um verificador baseado na Web:
- Instale a amostra pública do CMWallet no smartphone Android.
Para fazer isso, extraia do repositório e instale diretamente do
Android Studio ou acesse
https://github.com/digitalcredentialsdev/CMWallet/actions
e selecione o build mais recente para acessar o arquivo
app-debug.apkmais recente. - Abra a CMWallet para registrar os metadados com o Credential Manager. Verifique se o Bluetooth está ativado para permitir que os dispositivos se conectem entre si.
- Acesse https://digital-credentials.dev/ e selecione
Request Credentials (OpenID4VP). - Aceite os avisos e leia o QR code com o smartphone. Em seguida, selecione "Usar chave de acesso" e toque na confirmação para mostrar as credenciais disponíveis.
- Selecione a credencial na CMWallet para voltar ao navegador. O navegador vai mostrar a credencial retornada.
Veja também
- Para saber mais sobre como usar o Gerenciador de credenciais para solicitar credenciais digitais no seu app, leia a página API Credential Manager - Verifier.
- Para saber mais sobre como criar uma carteira digital usando o Gerenciador de credenciais, leia a página API Holder do Gerenciador de credenciais.