Creare credenziali verificabili per i token ID
Una definizione di regole che usa l'attestazione idTokens produce un flusso di rilascio in cui è necessario eseguire un accesso interattivo a un provider di identità OpenID Connect (OIDC) in Microsoft Authenticator. Le attestazioni nel token ID restituite dal provider di identità possono essere usate per popolare le credenziali verificabili rilasciate. La sezione mapping delle attestazioni nella definizione delle regole specifica le attestazioni usate.
Creare credenziali personalizzate con il tipo di attestazione idTokens
Nella portale di Azure, quando si seleziona Aggiungi credenziali, si ottiene l'opzione per avviare due guide introduttive. Selezionare credenziali personalizzate e quindi avanti.
Nella pagina Crea una nuova credenziale immettere il codice JSON per la visualizzazione e le definizioni delle regole. Nella casella Nome credenziali assegnare alla credenziale un nome di tipo. Per creare le credenziali, selezionare Crea.
Definizioni di visualizzazione JSON di esempio
La definizione di visualizzazione JSON è quasi identica, indipendentemente dal tipo di attestazione. È necessario modificare le etichette solo in base alle attestazioni presenti nelle credenziali verificabili. Il codice JSON previsto per le definizioni di visualizzazione è il contenuto interno della raccolta di visualizzazioni. JSON è una raccolta, quindi se si vogliono supportare più impostazioni locali, aggiungere più voci con una virgola come separatore.
{
"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"
}
]
}
Definizioni di regole JSON di esempio
La definizione di attestazione JSON deve contenere il nome idTokens, i dettagli di configurazione OIDC (clientId, configurazione, redirectUri e ambito) e la sezione mapping delle attestazioni. Il codice JSON previsto per le definizioni delle regole è il contenuto interno dell'attributo rules, che inizia con l'attributo di attestazione.
Per il mapping delle attestazioni nell'esempio seguente è necessario configurare il token come illustrato nella sezione Attestazioni nel token ID della sezione provider di identità.
{
"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"
]
}
}
Registrazione dell'applicazione
L'attributo clientId è l'ID applicazione di un'applicazione registrata nel provider di identità OIDC. Per Microsoft Entra ID, si crea l'applicazione seguendo questa procedura:
Nel portale di Azure passare a Microsoft Entra ID.
Selezionare Registrazioni app, selezionare Nuova registrazione e assegnare all'app un nome.
Se si vuole che solo gli account nel tenant siano in grado di accedere, mantenere selezionata solo la casella di controllo Account in questa directory.
In URI di reindirizzamento (facoltativo) selezionare Client pubblico/nativo (mobile e desktop) e quindi immettere vcclient://openid/.
Per controllare le attestazioni incluse nel token ID di Microsoft Entra, seguire questa procedura:
Nel riquadro sinistro selezionare Autenticazione>Aggiungi piattaforma>Web.
Per URI di reindirizzamento immettere https://jwt.mse quindi selezionare Token ID (usati per i flussi impliciti e ibridi).
Seleziona Configura.
Dopo aver completato il test del token ID, prendere in considerazione la possibilità di rimuovere https://jwt.ms e il supporto per i flussi impliciti e ibridi.
Per Microsoft Entra ID: è possibile testare la registrazione dell'app e, se è stato abilitato il supporto per il reindirizzamento a https://jwt.ms, è possibile ottenere un token ID eseguendo quanto segue nel browser:
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
Nel codice sostituire <your-tenantId> con l'ID tenant. Per ottenere le attestazioni aggiuntive, è necessario avere un profilo come parte dell'ambito.
Per Azure Active Directory B2C: il processo di registrazione dell'app è lo stesso, ma B2C include il supporto predefinito nella portale di Azure per testare i criteri B2C tramite la funzionalità Esegui flusso utente.
Attestazioni nel token ID del provider di identità
Le attestazioni devono esistere nel provider di identità restituito in modo che possano popolare correttamente le credenziali verificabili.
Se le attestazioni non esistono, non esiste alcun valore nelle credenziali verificabili rilasciate. La maggior parte dei provider di identità OIDC non rilascia un'attestazione in un token ID se l'attestazione ha un valore Null nel profilo. Assicurarsi di includere l'attestazione nella definizione del token ID e assicurarsi di aver immesso un valore per l'attestazione nel profilo utente.
Per Microsoft Entra ID: per configurare le attestazioni da includere nel token, vedere Fornire attestazioni facoltative all'app. La configurazione è per applicazione, quindi questa configurazione deve essere per l'app con l'ID applicazione specificato nell'ID client nella definizione delle regole.
Per trovare una corrispondenza con le definizioni di visualizzazione e regole, è necessario rendere facoltativo l'esempio JSON diclaims dell'applicazione come nell'esempio seguente:
"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": []
},
Per Azure Active Directory B2C: la configurazione di altre attestazioni nel token ID dipende dal fatto che il criterio B2C sia un flusso utente o un criterio personalizzato. Per informazioni sui flussi utente, vedere Configurare un flusso di iscrizione e accesso in Azure Active Directory B2C. Per informazioni sui criteri personalizzati, vedere Fornire attestazioni facoltative all'app.
Per altri provider di identità, vedere la documentazione pertinente.
Configurare gli esempi per eseguire il problema e verificare le credenziali personalizzate
Per configurare il codice di esempio per emettere e verificare le credenziali personalizzate, è necessario:
- Identificatore decentralizzato dell'autorità emittente del tenant (DID)
- Tipo di credenziale
- URL del manifesto per le credenziali
Il modo più semplice per trovare queste informazioni per le credenziali personalizzate consiste nell'accedere alle credenziali nella portale di Azure. Selezionare Rilascia credenziali. È quindi possibile accedere a una casella di testo con un payload JSON per l'API del servizio di richiesta. Sostituire i valori segnaposto con le informazioni dell'ambiente. Il did dell'autorità emittente è il valore dell'autorità.
Passaggi successivi
Vedere le informazioni di riferimento sulle regole e sulla visualizzazione delle definizioni.