Compartilhar via


Emitir credenciais verificáveis apresentando declarações de uma credencial verificável existente

Uma definição de regras que usa o tipo de atestado de apresentações produz um fluxo de emissão em que o usuário deve apresentar outra credencial verificável na carteira durante a emissão e os valores de declaração para emissão da nova credencial são obtidos da credencial apresentada. Um exemplo disso pode ser quando você apresenta a credencial VerifiedEmployee para obter uma credencial de passagem de visitantes.

Criar uma credencial personalizada com o tipo de atestado de apresentações

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.

Captura de tela do guia de início rápido 'Emitir credenciais' para criar uma credencial personalizada.

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 à credencial. Esse nome é apenas um nome interno para a credencial no portal. O nome do tipo da credencial é definido no nome da propriedade vc.type na definição de regras. Para criar a credencial, selecione Criar.

Captura de tela da página 'Criar uma credencial', exibindo exemplos JSON dos arquivos de exibição e de regras.

Definições de exibição JSON de amostra

A definição de exibição JSON é quase a mesma, independentemente do tipo de atestado. Você só precisa ajustar os rótulos de acordo com as declarações que a credencial verificável apresenta. O JSON esperado para as definições de exibição é o conteúdo interno da coleção de exibições. O JSON é uma coleção, portanto, se você quiser dar suporte a várias localidades, adicione várias entradas com uma vírgula como separador.

{
  "locale": "en-US",
  "card": {
    "backgroundColor": "#000000",
    "description": "Use your verified credential to prove to anyone that you know all about verifiable credentials.",
    "issuedBy": "Microsoft",
    "textColor": "#ffffff",
    "title": "Verified Credential Expert",
    "logo": {
      "description": "Verified Credential Expert Logo",
      "uri": "https://didcustomerplayground.z13.web.core.windows.net/VerifiedCredentialExpert_icon.png"
    }
  },
  "consent": {
    "instructions": "Present your True Identity card to issue your VC",
    "title": "Do you want to get your Verified Credential?"
  },
  "claims": [
    {
      "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 atestado JSON deve conter o nome presentations. O inputClaim na seção de mapeamento define quais declarações devem ser capturadas na credencial que o usuário apresenta. Elas precisam ter o prefixo $.vc.credentialSubject. O outputClaim definiu o nome das declarações na credencial que está sendo emitida.

A definição de regras a seguir solicita que o usuário apresente a credencial True Identity durante a emissão. Essa credencial vem do aplicativo de demonstração público.

{
  "attestations": {
    "presentations": [
      {
        "mapping": [
          {
            "outputClaim": "firstName",
            "required": true,
            "inputClaim": "$.vc.credentialSubject.firstName",
            "indexed": false
          },
          {
            "outputClaim": "lastName",
            "required": true,
            "inputClaim": "$.vc.credentialSubject.lastName",
            "indexed": false
          }
        ],
        "required": false,
        "credentialType": "TrueIdentity",
        "contracts": [
          "https://verifiedid.did.msidentity.com/v1.0/tenants/aaaabbbb-0000-cccc-1111-dddd2222eeee/verifiableCredentials/contracts/M2MzMmVkNDAtOGExMC00NjViLThiYTQtMGIxZTg2ODgyNjY4dHJ1ZSBpZGVudGl0eSBwcm9k/manifest"
        ]
      }
    ]
  },
  "validityInterval": 2592001,
  "vc": {
    "type": [
      "VerifiedCredentialExpert"
    ]
  }
}
Propriedade Type Descrição
credentialType string tipo de credencial que está sendo solicitado durante a emissão. TrueIdentity no exemplo acima.
contracts cadeia de caracteres (matriz) lista de URLs de manifesto de credenciais que estão sendo solicitadas. No exemplo acima, a URL do manifesto é o manifesto para True Identity
trustedIssuers cadeia de caracteres (matriz) uma lista de DIDs do emissor permitidos para a credencial que está sendo solicitada. No exemplo acima, o DID é do emissor True Identity.

Valores

Experiência do Authenticator durante a emissão

Durante a emissão, o Authenticator solicita que o usuário selecione uma credencial correspondente. Se o usuário tiver várias credenciais correspondentes na carteira, ele deverá selecionar qual será apresentada.

Captura de tela da entrada de declarações de apresentação.

Configurar os exemplos 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.

Captura de tela do Início Rápido de emissão de credencial personalizada.

Próximas etapas

Confira a Referência de regras e definições de exibição.