Udostępnij za pośrednictwem


Wywołaj interfejs API REST usługi Request Service

Microsoft Entra Verified ID zawiera interfejs API REST usługi Request Service. Ten interfejs API umożliwia wystawianie i weryfikowanie poświadczeń. W tym artykule pokazano, jak rozpocząć korzystanie z interfejsu API REST usługi żądań.

Token dostępu interfejsu API

Aplikacja musi dołączyć prawidłowy token dostępu z wymaganymi uprawnieniami, aby mogła uzyskać dostęp do interfejsu API REST usługi żądań. Tokeny dostępu wystawione przez platformę tożsamości firmy Microsoft zawierają informacje (zakresy), których używa interfejs API REST usługi żądań do sprawdzania poprawności elementu wywołującego. Token dostępu gwarantuje, że obiekt wywołujący ma odpowiednie uprawnienia do wykonania żądanej operacji.

Aby uzyskać token dostępu, aplikacja musi zostać zarejestrowana na platformie tożsamości firmy Microsoft i autoryzowana przez administratora w celu uzyskania dostępu do interfejsu API REST usługi żądań. Jeśli nie zarejestrowano aplikacji aplikacji do weryfikacji poświadczeń, zobacz jak zarejestrować aplikację, a następnie wygenerować klucz tajny aplikacji.

Uzyskiwanie tokenu dostępu

Użyj przepływu uprawnień klienta OAuth 2.0 , aby uzyskać token dostępu przy użyciu platformy tożsamości Microsoft. W tym celu użyj zaufanej biblioteki. W tym samouczku użyjemy biblioteki Microsoft Authentication Library (MSAL). Biblioteka MSAL upraszcza dodawanie uwierzytelniania i autoryzacji do aplikacji, która może wywoływać bezpieczny internetowy interfejs API.

POST /{tenant}/oauth2/v2.0/token HTTP/1.1           //Line breaks for clarity
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope=3db474b9-6a0c-4840-96ac-1fceb342124f/.default
&client_secret=sampleCredentia1s
&grant_type=client_credentials

W poprzednim kodzie podaj następujące parametry:

Parametr Warunek Opis
Autorytet Wymagane Dzierżawca katalogu, na którym aplikacja planuje działać. Na przykład: https://login.microsoftonline.com/{your-tenant}. (Zastąp your-tenant identyfikatorem dzierżawy lub nazwą).
Identyfikator klienta Wymagane Identyfikator aplikacji przypisany do aplikacji. Te informacje można znaleźć w witrynie Azure Portal, w której zarejestrowano aplikację.
Klucz tajny klienta Wymagane Tajny klucz klienta, który wygenerowałeś dla swojej aplikacji.
Zakresy Wymagane Musi być ustawione na 3db474b9-6a0c-4840-96ac-1fceb342124f/.default. To ustawienie tworzy token dostępu z roszczeniem roli typu równego VerifiableCredential.Create.All.

Aby uzyskać więcej informacji na temat uzyskiwania tokenu dostępu przy użyciu tożsamości aplikacji konsolowej, zobacz jeden z następujących artykułów:

Możesz również uzyskać dostęp do żądania tokenu za pomocą certyfikatu zamiast sekretu klienta.

POST /{tenant}/oauth2/v2.0/token HTTP/1.1   //Line breaks for clarity
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope=3db474b9-6a0c-4840-96ac-1fceb342124f/.default
&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJSUzI1NiIsIng1dCI6Imd4OHRHeXN5amNScUtqRlBuZDdSRnd2d1pJMCJ9.eyJ{a lot of characters here}M8U3bSUKKJDEg
&grant_type=client_credentials

Wywoływanie interfejsu API

Aby wydać lub zweryfikować poświadczenia weryfikowalne:

  1. Skonstruuj żądanie HTTP POST do Request Service REST API. Identyfikator dzierżawy nie jest już potrzebny w adresie URL, ponieważ jest obecny jako oświadczenie w tokenie dostępu.

    Problem

    POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createIssuanceRequest
    

    Zweryfikuj

    POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createPresentationRequest
    
  2. Dołącz token dostępu jako token uwierzytelniający typu Bearer do nagłówka autoryzacji w żądaniu HTTP.

    Authorization: Bearer <token>
    
  3. Ustaw nagłówek Content-Type na wartość Application/json.

  4. Przygotuj i dołącz wystawiania lub prezentacji ładunku żądania do treści żądania.

  5. Wyślij żądanie do interfejsu API REST usługi Request Service.

Interfejs API dla żądań zwraca kod stanu HTTP 201 Created przy pomyślnym wywołaniu. Jeśli wywołanie interfejsu API zwróci błąd, zapoznaj się z dokumentacją referencyjną błędu.

Przykład prośby o wydanie

W poniższym przykładzie przedstawiono weryfikowalne żądanie wystawiania poświadczeń. Aby uzyskać informacje o ładunku, zobacz specyfikację wystawiania żądania usługi API REST.

POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createIssuanceRequest
Content-Type: application/json
Authorization: Bearer  <token>

{...JSON payload...}

Żądanie wystawiania przy użyciu przepływu zaświadczania idTokenHint:

{
    "authority": "did:web:verifiedid.contoso.com",
    "callback": {
        "url": "https://contoso.com/api/issuer/issuanceCallback",
        "state": "de19cb6b-36c1-45fe-9409-909a51292a9c",
        "headers": {
            "api-key": "OPTIONAL API-KEY for CALLBACK EVENTS"
        }
    },
    "registration": {
        "clientName": "Verifiable Credential Expert Sample"
    },
    "type": "VerifiedCredentialExpert",
    "manifestUrl": "https://verifiedid.did.msidentity.com/v1.0/00001111-aaaa-2222-bbbb-3333cccc4444/verifiableCredentials/contracts/VerifiedCredentialExpert1",
    "pin": {
        "value": "3539",
        "length": 4
    },
    "claims": {
        "given_name": "Megan",
        "family_name": "Bowen"
    }
}

Pełny kod można znaleźć w jednym z następujących przykładów kodu:

Przykład żądania prezentacji

W poniższym przykładzie pokazano weryfikowalne żądanie prezentacji poświadczeń. Aby uzyskać informacje o ładunku, zobacz specyfikację prezentacji interfejsu API REST usługi Request Service.

POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createPresentationRequest
Content-Type: application/json
Authorization: Bearer  <token>

{...JSON payload...}

Żądanie prezentacji poświadczenia na określony typ i wystawcę:

{
  "authority": "did:web:verifiedid.contoso.com",
  "callback": {
    "url": "https://contoso.com/api/verifier/presentationCallback",
    "state": "92d076dd-450a-4247-aa5b-d2e75a1a5d58",
    "headers": {
      "api-key": "OPTIONAL API-KEY for CALLBACK EVENTS"
    }
  },
  "registration": {
    "clientName": "Veritable Credential Expert Verifier"
  },
  "includeReceipt": true,
  "requestedCredentials": [
    {
      "type": "VerifiedCredentialExpert",
      "purpose": "So we can see that you a veritable credentials expert",
      "acceptedIssuers": [
        "did:web:verifiedid.contoso.com"
      ],
      "configuration": {
        "validation": {
          "allowRevoked": true,
          "validateLinkedDomain": true
        }
      }
    }
  ]
}

Pełny kod można znaleźć w jednym z następujących przykładów kodu:

Zdarzenia callback

Ładunek żądania zawiera wystawianie oraz prezentację i wywołanie zwrotne punktu końcowego. Punkt końcowy jest częścią aplikacji internetowej i powinien być publicznie dostępny za pośrednictwem protokołu HTTPS. Interfejs API usługi Request Service wywołuje punkt końcowy, aby poinformować aplikację o niektórych zdarzeniach. Na przykład takie zdarzenia mogą występować, gdy użytkownik skanuje kod QR, używa linku głębokiego do aplikacji authenticator lub kończy proces prezentacji.

Na poniższym diagramie opisano wywołanie aplikacji wykonywane do interfejsu API REST usługi żądań oraz wywołania zwrotne do aplikacji.

Diagram przedstawiający wywołanie API i zdarzenia zwrotne.

Skonfiguruj punkt końcowy do nasłuchiwania przychodzących żądań HTTP POST. Poniższy fragment kodu pokazuje, jak obsługiwać żądanie HTTP dotyczące wywołania zwrotnego wydawania i jak odpowiednio zaktualizować interfejs użytkownika.

Nie dotyczy. Wybierz jeden z innych języków programowania.

Następne kroki

Dowiedz się więcej o tych specyfikacjach: