Utfärda Microsoft Entra – verifierat ID autentiseringsuppgifter från ett program

I den här självstudien kör du ett exempelprogram från din lokala dator som ansluter till din Microsoft Entra-klientorganisation. Med hjälp av programmet ska du utfärda och verifiera ett verifierat expertkort för autentiseringsuppgifter.

I den här artikeln kan du se hur du:

  • Skapa expertkortet för verifierade autentiseringsuppgifter i Azure.
  • Samla in autentiseringsuppgifter och miljöinformation för att konfigurera exempelprogrammet.
  • Ladda ned exempelprogramkoden till den lokala datorn.
  • Uppdatera exempelprogrammet med ditt verifierade expertkort för autentiseringsuppgifter och miljöinformation.
  • Kör exempelprogrammet och utfärda ditt första verifierade expertkort för autentiseringsuppgifter.
  • Verifiera ditt verifierade expertkort för autentiseringsuppgifter.

Följande diagram illustrerar Microsoft Entra – verifierat ID arkitekturen och komponenten som du konfigurerar.

Diagram that illustrates the Microsoft Entra Verified ID architecture.

Förutsättningar

Skapa expertkortet för verifierade autentiseringsuppgifter i Azure

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

I det här steget skapar du expertkortet för verifierade autentiseringsuppgifter med hjälp av Microsoft Entra – verifierat ID. När du har skapat autentiseringsuppgifterna kan din Microsoft Entra-klientorganisation utfärda den till användare som initierar processen.

  1. Logga in på administrationscentret för Microsoft Entra som minst global administratör.

  2. Välj Verifierbara autentiseringsuppgifter.

  3. När du har konfigurerat klientorganisationen bör skapa autentiseringsuppgifter visas. Du kan också välja Autentiseringsuppgifter på den vänstra menyn och välja + Lägg till en autentiseringsuppgift.

  4. I Skapa autentiseringsuppgifter väljer du Anpassad autentiseringsuppgift och klickar på Nästa:

    1. Som Namn på autentiseringsuppgifter anger du VerifiedCredentialExpert. Det här namnet används i portalen för att identifiera dina verifierbara autentiseringsuppgifter. Den ingår som en del av det verifierbara autentiseringsuppgifterna.

    2. Kopiera följande JSON och klistra in den i textrutan Visa definition

      {
          "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. Kopiera följande JSON och klistra in den i textrutan Regeldefinition

      {
        "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. Välj Skapa.

Följande skärmbild visar hur du skapar en ny autentiseringsuppgift:

Screenshot that shows how to create a new credential.

Samla in autentiseringsuppgifter och miljöinformation

Nu när du har en ny autentiseringsuppgift samlar du in lite information om din miljö och de autentiseringsuppgifter som du skapade. Du använder den här informationen när du konfigurerar exempelprogrammet.

  1. I Verifierbara autentiseringsuppgifter väljer du Problemautentiseringsuppgifter.

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

  2. Kopiera utfärdaren, som är den decentraliserade identifieraren, och registrera den för senare.

  3. Kopiera manifest-URL:en. Det är den URL som Authenticator utvärderar innan den visas för användarens verifierbara krav på utfärdande av autentiseringsuppgifter. Registrera den för senare användning.

  4. Kopiera ditt klientorganisations-ID och registrera det för senare. Klientorganisations-ID:t är guid i manifest-URL:en markerad i rött ovan.

Ladda ned exempelkoden

Exempelprogrammet är tillgängligt i .NET och koden underhålls på en GitHub-lagringsplats. Ladda ned exempelkoden från GitHub eller klona lagringsplatsen till din lokala dator:

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

Konfigurera appen för verifierbara autentiseringsuppgifter

Skapa en klienthemlighet för det registrerade programmet som du skapade. Exempelprogrammet använder klienthemligheten för att bevisa sin identitet när den begär token.

  1. Logga in på administrationscentret för Microsoft Entra som minst global administratör.

  2. Välj Microsoft Entra ID.

  3. Gå till sidan Program> Appregistreringar.

  4. Välj programmet verifiable-credentials-app som du skapade tidigare.

  5. Välj namnet för att gå in på registreringsinformationen.

  6. Kopiera program-ID:t (klient) och lagra det för senare.

    Screenshot that shows how to copy the app registration ID.

  7. På huvudmenyn går du till Hantera och väljer Certifikat och hemligheter.

  8. Välj Ny klienthemlighet och gör följande:

    1. I Beskrivning anger du en beskrivning av klienthemligheten (till exempel vc-sample-secret).

    2. Under Upphör att gälla väljer du en varaktighet för vilken hemligheten är giltig (till exempel sex månader). Välj Lägg till.

    3. Registrera hemlighetens värde. Du använder det här värdet för konfiguration i ett senare steg. Hemlighetens värde visas inte igen och kan inte hämtas på något annat sätt. Spela in den så snart den är synlig.

Nu bör du ha all nödvändig information som du behöver för att konfigurera exempelprogrammet.

Uppdatera exempelprogrammet

Nu ska du göra ändringar i exempelappens utfärdarkod för att uppdatera den med din verifierbara URL för autentiseringsuppgifter. Med det här steget kan du utfärda verifierbara autentiseringsuppgifter med hjälp av din egen klientorganisation.

  1. Under mappen active-directory-verifiable-credentials-dotnet-main öppnar du Visual Studio Code och väljer projektet i mappen 1-asp-net-core-api-idtokenhint.

  2. Öppna filen appsettings.json under projektrotmappen. Den här filen innehåller information om din Microsoft Entra – verifierat ID miljö. Uppdatera följande egenskaper med den information som du registrerade i tidigare steg:

    1. Klientorganisations-ID: ditt klient-ID
    2. Klient-ID: ditt klient-ID
    3. Klienthemlighet: din klienthemlighet
    4. DidAuthority: Din decentraliserade identifierare
    5. Manifest för autentiseringsuppgifter: Din manifest-URL

    CredentialType behövs bara för presentation, så om allt du vill göra är att utfärda behövs det inte.

  3. Spara filen appsettings.json .

Följande JSON visar en fullständig appsettings.json fil:

{
  "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"
  }
}

Utfärda ditt första expertkort för verifierade autentiseringsuppgifter

Nu är du redo att utfärda ditt första verifierade expertkort för autentiseringsuppgifter genom att köra exempelprogrammet.

  1. Kör projektet Verifiable_credentials_DotNet från Visual Studio Code. Eller så kör du följande från operativsystemets kommandorad:

    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. Kör följande kommando i ett annat kommandotolkfönster. Det här kommandot kör ngrok för att konfigurera en URL på 5000 och göra den offentligt tillgänglig på Internet.

    ngrok http 5000
    

    Kommentar

    På vissa datorer kan du behöva köra kommandot i det här formatet: ./ngrok http 5000.

  3. Öppna HTTPS-URL:en som genererats av ngrok.

    Screenshot that shows how to get the ngrok public URL.

  4. I en webbläsare väljer du Hämta autentiseringsuppgifter.

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

  5. Använd din mobila enhet och skanna QR-koden med Authenticator-appen. Du kan också skanna QR-koden direkt från kameran, vilket öppnar Authenticator-appen åt dig.

    Screenshot that shows how to scan the QR code.

  6. Just nu visas ett meddelande om att den här appen eller webbplatsen kan vara riskabel. Visa avancerad.

    Screenshot that shows how to respond to the warning message.

  7. På den riskfyllda webbplatsvarningen väljer du Fortsätt ändå (osäker). Den här varningen visas eftersom domänen inte är länkad till din decentraliserade identifierare (DID). Om du vill verifiera din domän följer du Länka domänen till din decentraliserade identifierare (DID). I den här självstudien kan du hoppa över domänregistreringen och välja Fortsätt ändå (osäker).

    Screenshot that shows how to proceed with the risky warning.

  8. Du uppmanas att ange en PIN-kod som visas på skärmen där du skannade QR-koden. PIN-koden lägger till ett extra skyddslager för utfärdandet. PIN-koden genereras slumpmässigt varje gång en utfärdande QR-kod visas.

    Screenshot that shows how to type the pin code.

  9. När du har angett PIN-koden visas skärmen Lägg till autentiseringsuppgifter . Överst på skärmen visas ett Inte verifierat meddelande (i rött). Den här varningen gäller den domänverifieringsvarning som nämndes tidigare.

  10. Välj Lägg till för att acceptera dina nya verifierbara autentiseringsuppgifter.

    Screenshot that shows how to add your new credential.

Klar! Nu har du en verifierad autentiseringsexpert som kan verifieras.

Screenshot that shows a newly added verifiable credential.

Gå tillbaka till exempelappen. Den visar att en autentiseringsuppgift har utfärdats.

Screenshot that shows a successfully issued verifiable credential.

Verifierbara namn på autentiseringsuppgifter

Dina verifierbara autentiseringsuppgifter innehåller Megan Bowen för förnamns- och efternamnsvärdena i autentiseringsuppgifterna. Dessa värden hårdkodades i exempelprogrammet och lades till i verifierbara autentiseringsuppgifter vid tidpunkten för utfärdandet i nyttolasten.

I verkliga scenarier hämtar programmet användarinformationen från en identitetsprovider. Följande kodfragment visar var namnet anges i exempelprogrammet.

//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";
    ...
}

Nästa steg

I nästa steg får du lära dig hur ett program från tredje part, även kallat ett förlitande program, kan verifiera dina autentiseringsuppgifter med sin egen API-tjänst för verifierbara autentiseringsuppgifter för Microsoft Entra-klientorganisationen.