Criar credenciais verificáveis com vários atestados
Uma definição de regras que usa vários tipos de atestado produz um fluxo de emissão em que as declarações vêm de mais de uma fonte. Por exemplo, você pode ser obrigado a apresentar uma credencial existente e também inserir manualmente valores para declarações no Microsoft Authenticator.
Neste guia de instruções, estenderemos o exemplo de atestado de dica de token de ID adicionando uma declaração autoatestada que o usuário precisa inserir no Authenticator durante a emissão. A solicitação de emissão para a ID Verificada conterá uma dica de token de ID com os valores de declaração para given_name
e family_name
e um tipo de atestado autoemitido para a declaração displayName
que o próprio usuário insere.
Criar uma credencial personalizada com vários tipos de atestado
No portal do Azure, ao selecionar Adicionar credencial, você tem a opção de iniciar duas experiências de Início Rápido. Selecione credencial personalizada e Avançar.
Na página Criar uma nova credencial, insira o código JSON para a exibição e as definições de regras. Na caixa Nome da credencial, dê um nome de tipo à credencial. Para criar a credencial, selecione Criar.
Definições de exibição JSON de amostra
A definição de exibição JSON tem uma declaração adicional chamada displayName, em comparação à definição de exibição da dica de token de ID.
{
"locale": "en-US",
"card": {
"title": "Verified Credential Expert",
"issuedBy": "Microsoft",
"backgroundColor": "#507090",
"textColor": "#ffffff",
"logo": {
"uri": "https://didcustomerplayground.z13.web.core.windows.net/VerifiedCredentialExpert_icon.png",
"description": "Verified Credential Expert Logo"
},
"description": "Use your verified credential to prove to anyone that you know all about verifiable credentials."
},
"consent": {
"title": "Do you want to get your Verified Credential?",
"instructions": "Sign in with your account to get your card."
},
"claims": [
{
"claim": "vc.credentialSubject.displayName",
"label": "Name",
"type": "String"
},
{
"claim": "vc.credentialSubject.firstName",
"label": "First name",
"type": "String"
},
{
"claim": "vc.credentialSubject.lastName",
"label": "Last name",
"type": "String"
}
]
}
Definições de regras JSON de amostra
A definição de regras JSON contém dois atestados diferentes que instruem o Authenticator a obter valores de declaração de duas fontes diferentes. A solicitação de emissão para a API do Serviço de Solicitação fornece os valores para as declarações given_name e family_name para atender ao atestado idTokenHints. O usuário será solicitado a inserir o valor da declaração para displayName no Authenticator durante a emissão.
{
"attestations": {
"idTokenHints": [
{
"mapping": [
{
"outputClaim": "firstName",
"required": true,
"inputClaim": "$.given_name",
"indexed": false
},
{
"outputClaim": "lastName",
"required": true,
"inputClaim": "$.family_name",
"indexed": false
}
],
"required": false
}
],
"selfIssued": {
"mapping": [
{
"outputClaim": "displayName",
"required": true,
"inputClaim": "displayName",
"indexed": false
}
],
"required": false
}
},
"validityInterval": 2592000,
"vc": {
"type": [
"VerifiedCredentialExpert"
]
}
}
Entrada de declarações durante a emissão
Durante a emissão, o Authenticator solicita que o usuário insira valores para as declarações especificadas. A entrada de usuário não é validada.
Declarações na credencial emitida
A credencial emitida terá três declarações no total, em que o First
e o Last name
vieram do atestado da dica de token de ID e o Name
veio do atestado autoemitido.
Configurar as amostras para emitir e verificar a credencial personalizada
Para configurar o código de exemplo para emitir e verificar a credencial personalizada, você precisa do seguinte:
- DID (identificador descentralizado) do emissor do locatário
- O tipo de credencial
- A URL do manifesto para a credencial
A maneira mais fácil de encontrar essas informações para uma credencial personalizada é acessar a credencial no portal do Azure. Selecione Emitir credencial. Em seguida, você tem acesso a uma caixa de texto com um conteúdo JSON para a API do Serviço de Solicitação. Substitua os valores de espaço reservado pelas informações do ambiente. O DID do emissor é o valor da autoridade.