Problem Zweryfikowany identyfikator Microsoft Entra poświadczeń z aplikacji

W tym samouczku uruchomisz przykładową aplikację z komputera lokalnego, która łączy się z dzierżawą firmy Microsoft Entra. Korzystając z aplikacji, wydasz i zweryfikujesz zweryfikowaną kartę eksperta poświadczeń.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Utwórz zweryfikowaną kartę eksperta poświadczeń na platformie Azure.
  • Zbierz poświadczenia i szczegóły środowiska, aby skonfigurować przykładową aplikację.
  • Pobierz przykładowy kod aplikacji na komputer lokalny.
  • Zaktualizuj przykładową aplikację przy użyciu zweryfikowanego eksperta poświadczeń i szczegółów środowiska.
  • Uruchom przykładową aplikację i wydaj pierwszą zweryfikowaną kartę eksperta poświadczeń.
  • Sprawdź zweryfikowaną kartę eksperta poświadczeń.

Na poniższym diagramie przedstawiono architekturę Zweryfikowany identyfikator Microsoft Entra i skonfigurowany składnik.

Diagram that illustrates the Microsoft Entra Verified ID architecture.

Wymagania wstępne

Tworzenie karty zweryfikowanego eksperta poświadczeń na platformie Azure

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

W tym kroku utworzysz zweryfikowaną kartę eksperta poświadczeń przy użyciu Zweryfikowany identyfikator Microsoft Entra. Po utworzeniu poświadczeń dzierżawa firmy Microsoft Entra może wydać ją użytkownikom, którzy inicjują ten proces.

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej administrator globalny Administracja istrator.

  2. Wybierz pozycję Weryfikowalne poświadczenia.

  3. Po skonfigurowaniu dzierżawy powinien zostać wyświetlony przycisk Utwórz poświadczenie. Alternatywnie możesz wybrać pozycję Poświadczenia w menu po lewej stronie i wybrać pozycję + Dodaj poświadczenia.

  4. W obszarze Utwórz poświadczenia wybierz pozycję Poświadczenia niestandardowe, a następnie kliknij przycisk Dalej:

    1. W polu Nazwa poświadczenia wprowadź wartość VerifiedCredentialExpert. Ta nazwa jest używana w portalu do identyfikowania poświadczeń weryfikowalnych. Jest on uwzględniony w ramach kontraktu weryfikowalnych poświadczeń.

    2. Skopiuj następujący kod JSON i wklej go w polu tekstowym Definicja wyświetlana

      {
          "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. Skopiuj następujący kod JSON i wklej go w polu tekstowym Definicja reguł

      {
        "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. Wybierz pozycję Utwórz.

Poniższy zrzut ekranu przedstawia sposób tworzenia nowego poświadczenia:

Screenshot that shows how to create a new credential.

Zbieranie poświadczeń i szczegółów środowiska

Teraz, gdy masz nowe poświadczenia, zbierzesz kilka informacji o środowisku i utworzonych poświadczeń. Te informacje są używane podczas konfigurowania przykładowej aplikacji.

  1. W obszarze Weryfikowalne poświadczenia wybierz pozycję Wystawiaj poświadczenia.

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

  2. Skopiuj urząd, który jest identyfikatorem zdecentralizowanym, i zapisz go na później.

  3. Skopiuj adres URL manifestu. Jest to adres URL, który aplikacja Authenticator ocenia przed wyświetleniem go dla użytkownika weryfikowalnych wymagań wystawiania poświadczeń. Zarejestruj go do późniejszego użycia.

  4. Skopiuj identyfikator dzierżawy i zapisz go później. Identyfikator dzierżawy jest identyfikatorem GUID w adresie URL manifestu wyróżnionym na czerwono powyżej.

Pobieranie przykładowego kodu

Przykładowa aplikacja jest dostępna na platformie .NET, a kod jest przechowywany w repozytorium GitHub. Pobierz przykładowy kod z usługi GitHub lub sklonuj repozytorium na komputer lokalny:

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

Konfigurowanie aplikacji weryfikowalnych poświadczeń

Utwórz wpis tajny klienta dla utworzonej zarejestrowanej aplikacji. Przykładowa aplikacja używa klucza tajnego klienta, aby udowodnić swoją tożsamość, gdy żąda tokenów.

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej administrator globalny Administracja istrator.

  2. Wybierz Microsoft Entra ID.

  3. Przejdź do strony Aplikacje> Rejestracje aplikacji.

  4. Wybierz utworzoną wcześniej aplikację weryfikowalny-credentials-app .

  5. Wybierz nazwę, aby przejść do szczegółów rejestracji.

  6. Skopiuj identyfikator aplikacji (klienta) i zapisz go na później.

    Screenshot that shows how to copy the app registration ID.

  7. Z menu głównego w obszarze Zarządzaj wybierz pozycję Certyfikaty i wpisy tajne.

  8. Wybierz pozycję Nowy klucz tajny klienta i wykonaj następujące czynności:

    1. W polu Opis wprowadź opis wpisu tajnego klienta (na przykład vc-sample-secret).

    2. W obszarze Wygasa wybierz czas trwania, dla którego wpis tajny jest ważny (na przykład sześć miesięcy). Następnie wybierz pozycję Dodaj.

    3. Zarejestruj wartość wpisu tajnego. Użyjesz tej wartości do konfiguracji w późniejszym kroku. Wartość wpisu tajnego nie zostanie ponownie wyświetlona i nie będzie pobierana w żaden inny sposób. Zarejestruj go tak szybko, jak jest widoczny.

W tym momencie należy mieć wszystkie wymagane informacje potrzebne do skonfigurowania przykładowej aplikacji.

Aktualizowanie przykładowej aplikacji

Teraz wprowadzisz modyfikacje kodu wystawcy przykładowej aplikacji, aby zaktualizować go przy użyciu weryfikowalnego adresu URL poświadczeń. Ten krok umożliwia wystawianie poświadczeń weryfikowalnych przy użyciu własnej dzierżawy.

  1. W folderze active-directory-verifiable-credentials-dotnet-main otwórz program Visual Studio Code i wybierz projekt w folderze 1-asp-core-api-idtokenhint .

  2. W folderze głównym projektu otwórz plik appsettings.json . Ten plik zawiera informacje o środowisku Zweryfikowany identyfikator Microsoft Entra. Zaktualizuj następujące właściwości przy użyciu informacji zarejestrowanych we wcześniejszych krokach:

    1. Identyfikator dzierżawy: identyfikator dzierżawy
    2. Identyfikator klienta: identyfikator klienta
    3. Klucz tajny klienta: klucz tajny klienta
    4. DidAuthority: Identyfikator zdecentralizowany
    5. Manifest poświadczeń: adres URL manifestu

    Typ credentialType jest wymagany tylko do prezentacji, więc jeśli wszystko, co chcesz zrobić, to wystawianie, nie jest konieczne.

  3. Zapisz plik appsettings.json.

Poniższy kod JSON przedstawia kompletny plik appsettings.json :

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

Wydaj pierwszą zweryfikowaną kartę eksperta poświadczeń

Teraz możesz wydać pierwszą zweryfikowaną kartę eksperta poświadczeń, uruchamiając przykładową aplikację.

  1. W programie Visual Studio Code uruchom projekt Verifiable_credentials_DotNet . Możesz też uruchomić polecenie w wierszu polecenia systemu operacyjnego:

    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. W innym oknie wiersza polecenia uruchom następujące polecenie. To polecenie uruchamia narzędzie ngrok , aby skonfigurować adres URL na 5000 i udostępnić go publicznie w Internecie.

    ngrok http 5000
    

    Uwaga

    Na niektórych komputerach może być konieczne uruchomienie polecenia w tym formacie: ./ngrok http 5000.

  3. Otwórz adres URL HTTPS wygenerowany przez narzędzie ngrok.

    Screenshot that shows how to get the ngrok public URL.

  4. W przeglądarce internetowej wybierz pozycję Pobierz poświadczenia.

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

  5. Korzystając z urządzenia przenośnego, przeskanuj kod QR za pomocą aplikacji Authenticator. Możesz również zeskanować kod QR bezpośrednio z aparatu, co spowoduje otwarcie aplikacji Authenticator.

    Screenshot that shows how to scan the QR code.

  6. W tej chwili zostanie wyświetlone ostrzeżenie o tym, że ta aplikacja lub witryna internetowa może być ryzykowna. Wybierz opcję Zaawansowane.

    Screenshot that shows how to respond to the warning message.

  7. Na ryzykowne ostrzeżenie witryny internetowej wybierz pozycję Kontynuuj mimo to (niebezpieczne). Widzisz to ostrzeżenie, ponieważ domena nie jest połączona z identyfikatorem zdecentralizowanym (DID). Aby zweryfikować domenę, postępuj zgodnie z instrukcjami Link your domain to your decentralized identifier (DID) (Połącz domenę z identyfikatorem zdecentralizowanym ). Na potrzeby tego samouczka możesz pominąć rejestrację domeny, a następnie wybrać pozycję Kontynuuj mimo to (niebezpieczne).

    Screenshot that shows how to proceed with the risky warning.

  8. Zostanie wyświetlony monit o wprowadzenie kodu PIN wyświetlanego na ekranie, na którym zeskanowano kod QR. Numer PIN dodaje dodatkową warstwę ochrony do wystawiania. Kod PIN jest generowany losowo za każdym razem, gdy jest wyświetlany kod QR wystawiania.

    Screenshot that shows how to type the pin code.

  9. Po wprowadzeniu numeru PIN zostanie wyświetlony ekran Dodawanie poświadczeń . W górnej części ekranu zostanie wyświetlony komunikat Nie zweryfikowany (na czerwono). To ostrzeżenie jest związane z ostrzeżeniem weryfikacji domeny wymienionym wcześniej.

  10. Wybierz pozycję Dodaj , aby zaakceptować nowe poświadczenia weryfikowalne.

    Screenshot that shows how to add your new credential.

Gratulacje! Masz teraz zweryfikowane poświadczenia eksperta w zakresie weryfikowania poświadczeń.

Screenshot that shows a newly added verifiable credential.

Wróć do przykładowej aplikacji. Pokazuje on, że poświadczenie zostało pomyślnie wystawione.

Screenshot that shows a successfully issued verifiable credential.

Weryfikowalne nazwy poświadczeń

Twoje weryfikowalne poświadczenie zawiera Megan Bowen dla wartości imienia i nazwiska w poświadczeniu. Te wartości zostały zakodowane na stałe w przykładowej aplikacji i zostały dodane do weryfikowalnego poświadczenia w czasie wystawiania w ładunku.

W rzeczywistych scenariuszach aplikacja pobiera szczegóły użytkownika z dostawcy tożsamości. Poniższy fragment kodu pokazuje, gdzie nazwa jest ustawiona w przykładowej aplikacji.

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

Następne kroki

W następnym kroku dowiesz się, jak aplikacja innej firmy, znana również jako aplikacja jednostki uzależnionej, może zweryfikować swoje poświadczenia za pomocą własnej usługi interfejsu API weryfikowania poświadczeń firmy Microsoft Entra.