Probleem Microsoft Entra geverifieerde ID referenties van een toepassing

In deze zelfstudie voert u een voorbeeldtoepassing uit vanaf uw lokale computer die verbinding maakt met uw Microsoft Entra-tenant. Met behulp van de toepassing gaat u een geverifieerde referentie-expertkaart uitgeven en verifiëren.

In dit artikel leert u het volgende:

  • Maak de geverifieerde referentie-expertkaart in Azure.
  • Verzamel referenties en omgevingsgegevens om de voorbeeldtoepassing in te stellen.
  • Download de voorbeeldtoepassingscode naar uw lokale computer.
  • Werk de voorbeeldtoepassing bij met de gegevens van uw geverifieerde referentie-expertkaart en omgeving.
  • Voer de voorbeeldtoepassing uit en geef uw eerste geverifieerde referentie-expertkaart uit.
  • Controleer uw geverifieerde referentie-expertkaart.

In het volgende diagram ziet u de Microsoft Entra geverifieerde ID-architectuur en het onderdeel dat u configureert.

Diagram that illustrates the Microsoft Entra Verified ID architecture.

Vereisten

De geverifieerde referentie-expertkaart maken in Azure

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

In deze stap maakt u de geverifieerde referentie-expertkaart met behulp van Microsoft Entra geverifieerde ID. Nadat u de referentie hebt gemaakt, kan uw Microsoft Entra-tenant deze uitgeven aan gebruikers die het proces initiëren.

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een Globale Beheer istrator.

  2. Selecteer Verifieerbare referenties.

  3. Nadat u uw tenant hebt ingesteld, wordt de referentie maken weergegeven. U kunt ook Referenties selecteren in het linkermenu en + Een referentie toevoegen selecteren.

  4. Selecteer in Referentie maken de optie Aangepaste referentie en klik op Volgende:

    1. Voer Voor de naam van de referentie geverifieerdeCredentialExpert in. Deze naam wordt gebruikt in de portal om uw verifieerbare referenties te identificeren. Deze wordt opgenomen als onderdeel van het verifieerbare referentiecontract.

    2. Kopieer de volgende JSON en plak deze in het tekstvak weergavedefinitie

      {
          "locale": "en-US",
          "card": {
            "title": "Verified Credential Expert",
            "issuedBy": "Microsoft",
            "backgroundColor": "#000000",
            "textColor": "#ffffff",
            "logo": {
              "uri": "https://didcustomerplayground.blob.core.windows.net/public/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.firstName",
              "label": "First name",
              "type": "String"
            },
            {
              "claim": "vc.credentialSubject.lastName",
              "label": "Last name",
              "type": "String"
            }
          ]
      }
      
    3. Kopieer de volgende JSON en plak deze in het tekstvak Regelsdefinitie

      {
        "attestations": {
          "idTokenHints": [
            {
              "mapping": [
                {
                  "outputClaim": "firstName",
                  "required": true,
                  "inputClaim": "$.given_name",
                  "indexed": false
                },
                {
                  "outputClaim": "lastName",
                  "required": true,
                  "inputClaim": "$.family_name",
                  "indexed": true
                }
              ],
              "required": false
            }
          ]
        },
        "validityInterval": 2592000,
        "vc": {
          "type": [
            "VerifiedCredentialExpert"
          ]
        }
      }
      
    4. Selecteer Maken.

In de volgende schermopname ziet u hoe u een nieuwe referentie maakt:

Screenshot that shows how to create a new credential.

Referenties en omgevingsgegevens verzamelen

Nu u een nieuwe referentie hebt, gaat u informatie verzamelen over uw omgeving en de referenties die u hebt gemaakt. U gebruikt deze stukjes informatie bij het instellen van uw voorbeeldtoepassing.

  1. Selecteer in Verifieerbare referenties de optie Referentie probleem.

    Screenshot that shows how to select the newly created verified credential.

  2. Kopieer de instantie, de gedecentraliseerde id, en noteer deze voor later gebruik.

  3. Kopieer de manifest-URL . Dit is de URL die Authenticator evalueert voordat deze wordt weergegeven aan de vereisten voor verificatie van referenties door de gebruiker. Noteer deze voor later gebruik.

  4. Kopieer uw tenant-id en noteer deze voor later gebruik. De tenant-id is de guid in de manifest-URL die hierboven is gemarkeerd in rood.

De voorbeeldcode downloaden

De voorbeeldtoepassing is beschikbaar in .NET en de code wordt onderhouden in een GitHub-opslagplaats. Download de voorbeeldcode van GitHub of kloon de opslagplaats naar uw lokale computer:

git clone https://github.com/Azure-Samples/active-directory-verifiable-credentials-dotnet.git

De verifieerbare referenties-app configureren

Maak een clientgeheim voor de geregistreerde toepassing die u hebt gemaakt. De voorbeeldtoepassing gebruikt het clientgeheim om de identiteit te bewijzen wanneer tokens worden aangevraagd.

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een Globale Beheer istrator.

  2. Selecteer Microsoft Entra ID.

  3. Ga naar de pagina Toepassingen> App-registraties.

  4. Selecteer de verifiable-credentials-app-toepassing die u eerder hebt gemaakt.

  5. Selecteer de naam om naar de registratiegegevens te gaan.

  6. Kopieer de toepassings-id (client) en sla deze op voor later gebruik.

    Screenshot that shows how to copy the app registration ID.

  7. Selecteer certificaten en geheimen in het hoofdmenu onder Beheren.

  8. Selecteer Nieuw clientgeheim en ga als volgt te werk:

    1. Voer in Beschrijving een beschrijving in voor het clientgeheim (bijvoorbeeld vc-sample-secret).

    2. Selecteer onder Verlopen een duur waarvoor het geheim geldig is (bijvoorbeeld zes maanden). Selecteer vervolgens Toevoegen.

    3. Noteer de Waarde van het geheim. U gebruikt deze waarde voor configuratie in een latere stap. De waarde van het geheim wordt niet opnieuw weergegeven en kan op geen enkele andere manier worden opgehaald. Noteer deze zodra deze zichtbaar is.

Op dit moment moet u alle vereiste informatie hebben die u nodig hebt om uw voorbeeldtoepassing in te stellen.

De voorbeeldtoepassing bijwerken

Nu gaat u wijzigingen aanbrengen in de code van de uitgever van de voorbeeld-app om deze bij te werken met uw verifieerbare referentie-URL. Met deze stap kunt u verifieerbare referenties uitgeven met behulp van uw eigen tenant.

  1. Open Visual Studio Code onder de map active-directory-verifiable-credentials-dotnet-main en selecteer het project in de map 1-asp-net-core-api-idtokenhint .

  2. Open het bestand appsettings.json in de hoofdmap van het project. Dit bestand bevat informatie over uw Microsoft Entra geverifieerde ID-omgeving. Werk de volgende eigenschappen bij met de informatie die u in eerdere stappen hebt vastgelegd:

    1. Tenant-id: uw tenant-id
    2. Client-id: uw client-id
    3. Clientgeheim: uw clientgeheim
    4. DidAuthority: uw gedecentraliseerde id
    5. Referentiemanifest: uw manifest-URL

    CredentialType is alleen nodig voor presentatie, dus als u alleen maar uitgifte wilt doen, is het strikt niet nodig.

  3. Sla het appsettings.json-bestand op.

In de volgende JSON ziet u een volledig appsettings.json-bestand :

{
  "VerifiedID": {
    "Endpoint": "https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/",
    "VCServiceScope": "3db474b9-6a0c-4840-96ac-1fceb342124f/.default",
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "12345678-0000-0000-0000-000000000000",
    "ClientId": "33333333-0000-0000-0000-000000000000",
    "ClientSecret": "123456789012345678901234567890",
    "CertificateName": "[Or instead of client secret: Enter here the name of a certificate (from the user cert store) as registered with your application]",
    "DidAuthority": "did:web:...your-decentralized-identifier...",
    "CredentialType": "VerifiedCredentialExpert",
    "CredentialManifest":  "https://verifiedid.did.msidentity.com/v1.0/12345678-0000-0000-0000-000000000000/verifiableCredentials/contracts/VerifiedCredentialExpert"
  }
}

Geef uw eerste geverifieerde referentieexpertkaart

Nu bent u klaar om uw eerste geverifieerde referentie-expertkaart uit te geven door de voorbeeldtoepassing uit te voeren.

  1. Voer vanuit Visual Studio Code het Verifiable_credentials_DotNet-project uit. Of voer vanaf de opdrachtregel van uw besturingssysteem het volgende uit:

    cd active-directory-verifiable-credentials-dotnet\1-asp-net-core-api-idtokenhint
    dotnet build "AspNetCoreVerifiableCredentials.csproj" -c Debug -o .\bin\Debug\net6.
    dotnet run
    
  2. Voer in een ander opdrachtpromptvenster de volgende opdracht uit. Met deze opdracht wordt ngrok uitgevoerd om een URL in te stellen op 5000 en openbaar beschikbaar te maken op internet.

    ngrok http 5000
    

    Notitie

    Op sommige computers moet u mogelijk de opdracht in deze indeling uitvoeren: ./ngrok http 5000.

  3. Open de HTTPS-URL die is gegenereerd door ngrok.

    Screenshot that shows how to get the ngrok public URL.

  4. Selecteer Referentie ophalen in een webbrowser.

    Screenshot that shows how to choose to get the credential from the sample app.

  5. Scan met uw mobiele apparaat de QR-code met de Authenticator-app. U kunt de QR-code ook rechtstreeks vanaf uw camera scannen, waardoor de Authenticator-app voor u wordt geopend.

    Screenshot that shows how to scan the QR code.

  6. Op dit moment ziet u een berichtwaarschuwing dat deze app of website riskant kan zijn. Selecteer Geavanceerd.

    Screenshot that shows how to respond to the warning message.

  7. Selecteer Toch doorgaan (onveilig) bij de waarschuwing van de riskante website. U ziet deze waarschuwing omdat uw domein niet is gekoppeld aan uw gedecentraliseerde id (DID). Volg Uw domein koppelen aan uw gedecentraliseerde id (DID) om uw domein te verifiëren. Voor deze zelfstudie kunt u de domeinregistratie overslaan en toch Doorgaan selecteren (onveilig).

    Screenshot that shows how to proceed with the risky warning.

  8. U wordt gevraagd een pincode in te voeren die wordt weergegeven in het scherm waarin u de QR-code hebt gescand. De pincode voegt een extra beveiligingslaag toe aan de uitgifte. De pincode wordt willekeurig gegenereerd telkens wanneer een QR-code voor uitgifte wordt weergegeven.

    Screenshot that shows how to type the pin code.

  9. Nadat u het pincodenummer hebt ingevoerd, wordt het scherm Een referentie toevoegen weergegeven. Boven aan het scherm ziet u een niet-geverifieerd bericht (rood). Deze waarschuwing is gerelateerd aan de eerder genoemde waarschuwing voor domeinvalidatie.

  10. Selecteer Toevoegen om uw nieuwe verifieerbare referentie te accepteren.

    Screenshot that shows how to add your new credential.

Gefeliciteerd. U hebt nu een geverifieerde referentie-expert die kan worden geverifieerd.

Screenshot that shows a newly added verifiable credential.

Ga terug naar de voorbeeld-app. U ziet dat een referentie is uitgegeven.

Screenshot that shows a successfully issued verifiable credential.

Controleerbare referentienamen

Uw verifieerbare referentie bevat Megan Bowen voor de voor- en achternaamwaarden in de referentie. Deze waarden zijn vastgelegd in de voorbeeldtoepassing en zijn toegevoegd aan de verifieerbare referentie op het moment van uitgifte in de nettolading.

In echte scenario's haalt uw toepassing de gebruikersgegevens van een id-provider op. In het volgende codefragment ziet u waar de naam is ingesteld in de voorbeeldtoepassing.

//file: IssuerController.cs
[HttpGet("/api/issuer/issuance-request")]
public async Task<ActionResult> issuanceRequest()
  {
    ...
    // Here you could change the payload manifest and change the first name and last name.
    payload["claims"]["given_name"] = "Megan";
    payload["claims"]["family_name"] = "Bowen";
    ...
}

Volgende stappen

In de volgende stap leert u hoe een toepassing van derden, ook wel een relying party-toepassing genoemd, uw referenties kan verifiëren met een eigen Microsoft Entra-tenant controleerbare referenties-API-service.