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 Connect (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.
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.
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.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"
}
]
}
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 roszczeń. 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 kroki:
W witrynie Azure Portal przejdź do pozycji Microsoft Entra ID.
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 .
W polu Identyfikator URI przekierowania (opcjonalnie)wybierz pozycję Klient publiczny/natywny (mobilny i klasyczny), a następnie wprowadź vcclient://openid/.
Jeśli chcesz sprawdzić oświadczenia zawarte w tokenie Microsoft Entra ID, wykonaj następujące czynności:
W okienku po lewej stronie wybierz pozycję Uwierzytelnianie>Dodaj sieć Web platformy.>
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).
Wybierz Konfiguruj.
Po zakończeniu testowania tokenu identyfikatora rozważ usunięcie https://jwt.ms oraz obsługi dla niejawnych i hybrydowych przepływów.
dla Identyfikator Microsoft Entra: możesz przetestować rejestrację aplikacji i, jeśli włączysz obsługę przekierowywania do https://jwt.ms, możesz uzyskać token identyfikatora, uruchamiając to 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ć opcjonalny kod JSON aplikacjiClaims w następujący sposób:
"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.