Verifieerbare aanmeldingsgegevens maken voor id-token
Een regeldefinitie die gebruikmaakt van de idTokens-attestation produceert een uitgiftestroom waarbij u een interactieve aanmelding moet uitvoeren bij een OpenID Connect (OIDC) id-provider in Microsoft Authenticator. Claims in het id-token dat de id-provider retourneert, kunnen worden gebruikt om de uitgegeven verifieerbare aanmeldingsgegevens in te vullen. De sectie claimtoewijzing in de regeldefinitie geeft aan welke claims worden gebruikt.
Een aangepaste aanmeldingsgegeven maken met het attestation-type idTokens
Wanneer u in de Azure-portal Aanmeldingsgegeven toevoegen selecteert, krijgt u de optie om twee quickstarts te starten. Selecteer Aangepaste aanmeldingsgegeven en selecteer vervolgens Volgende.
Voer op de pagina Nieuw aanmeldingsgegeven maken de JSON-code voor de weergave en de regeldefinities in. Geef in het vak Naam aanmeldingsgegeven een typenaam op voor het aanmeldingsgegeven. Selecteer Maken om het aanmeldingsgegeven te maken.
Voorbeelddefinities van JSON-weergaven
De JSON-weergavedefinitie is vrijwel hetzelfde, ongeacht het attestation-type. U hoeft alleen de labels aan te passen op basis van de claims die uw verifieerbare aanmeldingsgegevens hebben. De verwachte JSON voor de weergavedefinities is de interne inhoud van de weergavenverzameling. De JSON is een verzameling, dus als u meerdere landinstellingen wilt ondersteunen, voegt u meerdere vermeldingen toe met een komma als scheidingsteken.
{
"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"
}
]
}
Voorbeelden van JSON-regeldefinities
De JSON-attestationdefinitie moet de naam idTokens, de OIDC-configuratiedetails (clientId, configuration, redirectUri en scope) en de sectie claimtoewijzing bevatten. De verwachte JSON voor de regeldefinities is de interne inhoud van het kenmerk Regels, dat begint met het attestation-kenmerk.
Voor de toewijzing van claims in het volgende voorbeeld moet u het token configureren, zoals uitgelegd in de sectie Claims in het id-token van de id-provider.
{
"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"
]
}
}
Toepassingsregistratie
Het kenmerk clientId is de toepassings-id van een geregistreerde toepassing in de OIDC-id-provider. Voor Microsoft Entra-id maakt u de toepassing als volgt:
Ga in Azure Portal naar Microsoft Entra-id.
Selecteer Toepassingsregistraties, selecteer Nieuwe registratie en geef de toepassing een naam.
Als u wilt dat alleen accounts in uw tenant zich kunnen aanmelden, houdt dan het selectievakje Alleen accounts in deze directory ingeschakeld.
Selecteer in omleidings-URI (optioneel) de optie Openbare client/systeemeigen (mobiel en desktop) en voer vervolgens vcclient://openid/ in.
Als u wilt kunnen testen welke claims zich in het Microsoft Entra-token bevinden, gaat u als volgt te werk:
Selecteer in het linker deelvenster Verificatie>Platform toevoegen>Web.
Voer voor Omleidings-URI https://jwt.ms in en selecteer vervolgens Id-tokens (gebruikt voor impliciete en hybride stromen).
Selecteer Configureren.
Nadat u klaar bent met het testen van uw ID-token, kunt u overwegen om https://jwt.ms en de ondersteuning voor impliciete en hybride stromen te verwijderen.
Voor Microsoft Entra ID: U kunt uw app-registratie testen en, als u ondersteuning voor omleiden https://jwt.mshebt ingeschakeld, kunt u een id-token ophalen door het volgende in uw browser uit te voeren:
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
Vervang <uw tenant-id> in de code door uw tenant-id. Om de extra claims wilt ophalen, moet u profiel hebben als onderdeel van het bereik.
Voor Azure Active Directory B2C: het toepassingsregistratieproces is hetzelfde, maar B2C heeft ingebouwde ondersteuning in de Azure-portal voor het testen van uw B2C-beleid via de functionaliteit Gebruikersstroom uitvoeren.
Claims in het id-token van de id-provider
Claims moeten aanwezig zijn in de geretourneerde id-provider, zodat ze uw verifieerbare aanmeldingsgegevens kunnen invullen.
Als de claims niet bestaan, is er geen waarde in de uitgegeven verifieerbare aanmeldingsgegevens. De meeste OIDC-id-providers geven geen claim uit in een id-token als de claim een null-waarde heeft in uw profiel. Zorg dat u de claim opneemt in de id-tokendefinitie en dat u een waarde hebt ingevoerd voor de claim in uw gebruikersprofiel.
Voor Microsoft Entra-id: Zie Optionele claims voor uw app opgeven als u de claims wilt configureren die u wilt opnemen in uw token. De configuratie is per toepassing, dus deze configuratie moet zijn voor de toepassing met de toepassings-id die is opgegeven in de client-id in de definitie van de regels.
Om de weergave- en regeldefinities overeen te laten komen, moet u ervoor zorgen dat de optionalClaims-JSON van uw toepassing er als volgt uitziet:
"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": []
},
Voor Azure Active Directory B2C: het configureren van andere claims in uw id-token is afhankelijk van of uw B2C-beleid een gebruikersstroom of een aangepast beleid is. Zie Een registratie- en aanmeldingsstroom instellen in Azure Active Directory B2C voor meer informatie over gebruikersstromen. Zie Optionele claims opgeven voor uw toepassing voor meer informatie over aangepast beleid.
Zie de relevante documentatie voor andere id-providers.
De voorbeelden configureren om uw aangepaste aanmeldingsgegevens uit te geven en te verifiëren
Om uw voorbeeldcode te configureren om uw aangepaste aanmeldingsgegevens uit te geven en te verifiëren, hebt u het volgende nodig:
- De gedecentraliseerde id van de uitgever van uw tenant (DID)
- Het type aanmeldingsgegevens
- De manifest-URL naar uw aanmeldingsgegevens
De eenvoudigste manier om deze informatie te vinden voor een aangepast aanmeldingsgegeven is door in de Azure-portal naar uw aanmeldingsgegeven te gaan. Selecteer Aanmeldingsgegevens uitgeven. Vervolgens hebt u toegang tot een tekstvak met een JSON-payload voor de Request Service-API. Vervang de plaatsaanduidingen door de informatie van uw omgeving. De DID van de uitgever is de autoriteitswaarde.