Tworzenie weryfikowalnych poświadczeń dla tokenów identyfikatorów

Definicja reguł używająca zaświadczania idTokens tworzy przepływ wystawiania, w którym wymagane jest interaktywne logowanie do dostawcy tożsamości OpenID Połączenie (OIDC) w usłudze Microsoft Authenticator. Oświadczenia w tokenie identyfikatora zwracanym przez dostawcę tożsamości mogą służyć do wypełniania wystawionych poświadczeń weryfikowalnych. Sekcja mapowania oświadczeń w definicji reguł określa, które oświadczenia są używane.

Tworzenie poświadczeń niestandardowych z typem zaświadczania idTokens

W witrynie Azure Portal po wybraniu pozycji Dodaj poświadczenia zostanie wyświetlona opcja uruchamiania dwóch przewodników Szybki start. Wybierz poświadczenia niestandardowe, a następnie wybierz przycisk Dalej.

Zrzut ekranu przedstawiający przewodnik Szybki start dotyczący poświadczeń problemu w celu utworzenia poświadczeń niestandardowych.

Na stronie Tworzenie nowego poświadczenia wprowadź kod JSON dla wyświetlania i definicje reguł. W polu Nazwa poświadczeń nadaj poświadczeniu nazwę typu. Aby utworzyć poświadczenia, wybierz pozycję Utwórz.

Zrzut ekranu przedstawiający stronę Tworzenie nowego poświadczenia z przykładami JSON dla plików wyświetlania i reguł.

Przykładowe definicje wyświetlania JSON

Definicja wyświetlania JSON jest prawie taka sama, niezależnie od typu zaświadczania. Należy dostosować etykiety tylko zgodnie z oświadczeniami, które mają weryfikowalne poświadczenia. Oczekiwany kod JSON dla definicji wyświetlania to wewnętrzna zawartość kolekcji wyświetla. Kod JSON jest kolekcją, więc jeśli chcesz obsługiwać wiele ustawień regionalnych, dodaj wiele wpisów z przecinkiem jako separatorem.

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

Przykładowe definicje reguł JSON

Definicja zaświadczania JSON powinna zawierać nazwę idTokens , szczegóły konfiguracji OIDC (clientId, configuration, redirectUri i scope) oraz sekcję mapowania oświadczeń. Oczekiwany kod JSON definicji reguł jest wewnętrzną zawartością atrybutu rules, który rozpoczyna się od atrybutu zaświadczania.

Mapowanie oświadczeń w poniższym przykładzie wymaga skonfigurowania tokenu zgodnie z wyjaśnieniem w sekcji Oświadczenia w tokenie identyfikatora z sekcji dostawca tożsamości.

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

Rejestrowanie aplikacji

Atrybut clientId jest identyfikatorem aplikacji zarejestrowanej aplikacji u dostawcy tożsamości OIDC. W przypadku identyfikatora Entra firmy Microsoft utworzysz aplikację, wykonując następujące czynności:

  1. W witrynie Azure Portal przejdź do pozycji Microsoft Entra ID.

  2. Wybierz Rejestracje aplikacji, wybierz pozycję Nowa rejestracja, a następnie nadaj aplikacji nazwę.

    Jeśli chcesz, aby tylko konta w dzierżawie mogły się zalogować, pozostaw zaznaczone pole wyboru Tylko konta w tym katalogu .

  3. W polu Identyfikator URI przekierowania (opcjonalnie)wybierz pozycję Klient publiczny/natywny (mobilny i klasyczny), a następnie wprowadź vcclient://openid/.

Jeśli chcesz mieć możliwość przetestowania oświadczeń w tokenie Firmy Microsoft Entra, wykonaj następujące czynności:

  1. W okienku po lewej stronie wybierz pozycję Uwierzytelnianie>Dodaj sieć Web platformy.>

  2. W polu Identyfikator URI przekierowania wprowadź wartość https://jwt.ms, a następnie wybierz pozycję Tokeny identyfikatorów (używane w przypadku przepływów niejawnych i hybrydowych).

  3. Wybierz Konfiguruj.

Po zakończeniu testowania tokenu identyfikatora rozważ usunięcie https://jwt.ms i obsługę niejawnych i hybrydowych przepływów.

W przypadku identyfikatora Entra firmy Microsoft: możesz przetestować rejestrację aplikacji i, jeśli włączono obsługę przekierowywania do https://jwt.msusługi , możesz uzyskać token identyfikatora, uruchamiając następujące polecenie w przeglądarce:

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

W kodzie zastąp <wartość your-tenantId> identyfikatorem dzierżawy. Aby uzyskać dodatkowe oświadczenia, musisz mieć profil w ramach zakresu.

W przypadku usługi Azure Active Directory B2C: proces rejestracji aplikacji jest taki sam, ale usługa B2C ma wbudowaną obsługę w witrynie Azure Portal na potrzeby testowania zasad B2C za pośrednictwem funkcji Uruchom przepływ użytkownika.

Oświadczenia w tokenie identyfikatora od dostawcy tożsamości

Oświadczenia muszą istnieć u zwróconego dostawcy tożsamości, aby można było pomyślnie wypełnić poświadczenia weryfikowalne.

Jeśli oświadczenia nie istnieją, nie ma wartości w wystawionych poświadczeniach weryfikowalnych. Większość dostawców tożsamości OIDC nie wystawia oświadczenia w tokenie identyfikatora, jeśli oświadczenie ma wartość null w profilu. Pamiętaj, aby uwzględnić oświadczenie w definicji tokenu identyfikatora i upewnij się, że wprowadzono wartość oświadczenia w profilu użytkownika.

W przypadku identyfikatora Entra firmy Microsoft: aby skonfigurować oświadczenia do uwzględnienia w tokenie, zobacz Zapewnianie opcjonalnych oświadczeń do aplikacji. Konfiguracja jest zgodna z aplikacją, więc ta konfiguracja powinna dotyczyć aplikacji, która ma identyfikator aplikacji określony w identyfikatorze klienta w definicji reguł.

Aby dopasować definicje wyświetlania i reguł, należy ustawić, aby opcjonalny kod JSON aplikacji był podobny do następującego:

"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": []
},

W przypadku usługi Azure Active Directory B2C: konfigurowanie innych oświadczeń w tokenie identyfikatora zależy od tego, czy zasady B2C są przepływemużytkownika, czy zasadami niestandardowymi. Aby uzyskać informacje na temat przepływów użytkowników, zobacz Konfigurowanie przepływu rejestracji i logowania w usłudze Azure Active Directory B2C. Aby uzyskać informacje na temat zasad niestandardowych, zobacz Dostarczanie opcjonalnych oświadczeń do aplikacji.

W przypadku innych dostawców tożsamości zapoznaj się z odpowiednią dokumentacją.

Konfigurowanie przykładów pod kątem wystawiania i weryfikowania poświadczeń niestandardowych

Aby skonfigurować przykładowy kod do wystawiania i weryfikowania poświadczeń niestandardowych, potrzebne są następujące elementy:

  • Identyfikator zdecentralizowany wystawcy dzierżawy (DID)
  • Typ poświadczeń
  • Adres URL manifestu do poświadczeń

Najprostszym sposobem znalezienia tych informacji dla poświadczeń niestandardowych jest przejście do poświadczeń w witrynie Azure Portal. Wybierz pozycję Poświadczenie problemu. Następnie masz dostęp do pola tekstowego z ładunkiem JSON dla interfejsu API usługi żądań. Zastąp wartości symboli zastępczych informacjami o środowisku. Identyfikator DID wystawcy jest wartością urzędu.

Zrzut ekranu przedstawiający problem z poświadczeniami niestandardowymi przewodnika Szybki start.

Następne kroki

Zobacz dokumentację reguł i definicji wyświetlania.