Crie credenciais verificáveis para tokens de ID
Uma definição de regras que usa o atestado idTokens produz um fluxo de emissão onde você é obrigado a fazer uma entrada interativa em um provedor de identidade OpenID Connect (OIDC) no Microsoft Authenticator. As declarações no token de ID que o provedor de identidade retorna podem ser usadas para preencher a credencial verificável emitida. A seção de mapeamento de declarações na definição de regras especifica quais declarações são usadas.
Crie uma credencial personalizada com o tipo de atestado idTokens
No portal do Azure, ao selecionar Adicionar credencial, você tem a opção de iniciar dois inícios rápidos. Selecione credencial personalizada e, em seguida, selecione 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ê à credencial um nome de tipo. Para criar a credencial, selecione Criar.
Definições de exibição JSON de exemplo
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 alegações que sua credencial verificável tem. O JSON esperado para as definições de exibição é o conteúdo interno da coleção de displays. O JSON é uma coleção, portanto, se você quiser oferecer suporte a várias localidades, adicione várias entradas com uma vírgula como separador.
{
"locale": "en-US",
"card": {
"title": "Verified Credential Expert",
"issuedBy": "Microsoft",
"backgroundColor": "#000000",
"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.userName",
"label": "User name",
"type": "String"
},
{
"claim": "vc.credentialSubject.displayName",
"label": "Display 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 exemplo
A definição de atestado JSON deve conter o nome idTokens, os detalhes de configuração do OIDC (clientId, configuration, redirectUri e escopo) e a seção de mapeamento de declarações. O JSON esperado para as definições de regras é o conteúdo interno do atributo rules, que começa com o atributo attestation.
O mapeamento de declarações no exemplo a seguir requer que você configure o token conforme explicado na seção Declarações no token de ID do provedor de identidade.
{
"attestations": {
"idTokens": [
{
"clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"configuration": "https://didplayground.b2clogin.com/didplayground.onmicrosoft.com/B2C_1_sisu/v2.0/.well-known/openid-configuration",
"redirectUri": "vcclient://openid/",
"scope": "openid profile email",
"mapping": [
{
"outputClaim": "userName",
"required": true,
"inputClaim": "$.upn",
"indexed": true
},
{
"outputClaim": "displayName",
"required": true,
"inputClaim": "$.name",
"indexed": false
},
{
"outputClaim": "firstName",
"required": true,
"inputClaim": "$.given_name",
"indexed": false
},
{
"outputClaim": "lastName",
"required": true,
"inputClaim": "$.family_name",
"indexed": false
}
],
"required": false
}
]
},
"validityInterval": 2592000,
"vc": {
"type": [
"VerifiedCredentialExpert"
]
}
}
Registo de aplicação
O atributo clientId é a ID do aplicativo de um aplicativo registrado no provedor de identidade OIDC. Para o Microsoft Entra ID, você cria o aplicativo seguindo estas etapas:
No portal do Azure, vá para Microsoft Entra ID.
Selecione Registos de aplicações, selecione Novo registo e, em seguida, atribua um nome à aplicação.
Se pretender que apenas as contas do seu inquilino possam iniciar sessão, mantenha a caixa de verificação Contas apenas neste diretório selecionada.
Em Redirecionar URI (opcional), selecione Cliente público/nativo (móvel ou desktop) e digite vcclient://openid/.
Se você quiser verificar as declarações incluídas no token de ID do Microsoft Entra, execute as seguintes etapas:
No painel esquerdo, selecione Autenticação>Adicionar plataforma>Web.
Em URI de redirecionamento, insira https://jwt.mse selecione Tokens de ID (usados para fluxos implícitos e híbridos).
Selecione Configurar.
Depois de terminar de testar seu token de ID, considere remover https://jwt.ms e dar suporte a fluxos implícitos e híbridos.
Para o Microsoft Entra ID: você pode testar o registro do aplicativo e, se tiver ativado o suporte para redirecionamento para https://jwt.mso , poderá obter um token de ID executando o seguinte no navegador:
https://login.microsoftonline.com/<your-tenantId>/oauth2/v2.0/authorize?client_id=<your-appId>&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid%20profile&response_type=id_token&prompt=login
No código, substitua <your-tenantId> pelo seu ID de locatário. Para obter as declarações extras, você precisa ter o perfil como parte do escopo.
Para o Azure Ative Directory B2C: o processo de registro do aplicativo é o mesmo, mas o B2C tem suporte interno no portal do Azure para testar suas políticas B2C por meio da funcionalidade Executar fluxo de usuário.
Declarações no token de ID do provedor de identidade
As declarações devem existir no provedor de identidade retornado para que eles possam preencher com êxito sua credencial verificável.
Se as declarações não existirem, não há valor na credencial verificável emitida. A maioria dos provedores de identidade OIDC não emite uma declaração em um token de ID se a declaração tiver um valor nulo em seu perfil. Certifique-se de incluir a declaração na definição de token de ID e certifique-se de que inseriu um valor para a declaração em seu perfil de usuário.
Para Microsoft Entra ID: para configurar as declarações a serem incluídas em seu token, consulte Fornecer declarações opcionais ao seu aplicativo. A configuração é por aplicativo, portanto, essa configuração deve ser para o aplicativo que tem o ID do aplicativo especificado no ID do cliente na definição de regras.
Para corresponder às definições de exibição e regras, você deve fazer com que o JSON opcionalClaims do seu aplicativo se pareça com o exemplo a seguir:
"optionalClaims": {
"idToken": [
{
"name": "upn",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "family_name",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "given_name",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "preferred_username",
"source": null,
"essential": false,
"additionalProperties": []
}
],
"accessToken": [],
"saml2Token": []
},
Para o Azure Ative Directory B2C: configurar outras declarações em seu token de ID depende se sua política B2C é um fluxo de usuário ou uma política personalizada. Para obter informações sobre fluxos de usuário, consulte Configurar um fluxo de inscrição e entrada no Azure Ative Directory B2C. Para obter informações sobre a política personalizada, consulte Fornecer declarações opcionais ao seu aplicativo.
Para outros provedores de identidade, consulte a documentação relevante.
Configure os exemplos para emitir e verificar sua credencial personalizada
Para configurar seu código de exemplo para emitir e verificar suas credenciais personalizadas, você precisa:
- Identificador descentralizado do emissor do seu inquilino (DID)
- O tipo de credencial
- O URL do manifesto para sua credencial
A maneira mais fácil de encontrar essas informações para uma credencial personalizada é ir para sua credencial no portal do Azure. Selecione Emitir credencial. Em seguida, você tem acesso a uma caixa de texto com uma carga JSON para a API do Serviço de Solicitação. Substitua os valores de espaço reservado pelas informações do seu ambiente. O DID do emitente é o valor da autoridade.
Próximos passos
Consulte a referência Regras e definições de exibição.