Rest API-uitgiftespecificatie van aanvraagservice
Microsoft Entra geverifieerde ID bevat de REST API van de aanvraagservice. Met deze API kunt u een referentie uitgeven en verifiëren. In dit artikel wordt de REST API voor aanvraagservice voor een uitgifteaanvraag opgegeven. In een ander artikel wordt beschreven hoe u de REST API van de aanvraagservice aanroept.
HTTP-aanvraag
De REST API-uitgifteaanvraag van de aanvraagservice ondersteunt de volgende HTTP-methode:
Wijze | Opmerkingen |
---|---|
POSTEN | Met JSON-nettolading zoals opgegeven in dit artikel. |
Voor de aanvraag voor de REST API-uitgifteaanvraag van de aanvraagservice zijn de volgende HTTP-headers vereist:
Naam | Weergegeven als |
---|---|
Authorization |
Koppel het toegangstoken als bearer-token aan de autorisatieheader in een HTTP-aanvraag. Bijvoorbeeld: Authorization: Bearer <token> . |
Content-Type |
application/json |
Maak een HTTP POST-aanvraag naar de REST API van de aanvraagservice.
https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createIssuanceRequest
De volgende HTTP-aanvraag demonstreert een aanvraag voor de REST API van de aanvraagservice:
POST https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/createIssuanceRequest
Content-Type: application/json
Authorization: Bearer <token>
{
"callback": {
"url": "https://contoso.com/api/issuer/issuanceCallback",
"state": "Aaaabbbb11112222",
"headers": {
"api-key": "an-api-key-can-go-here"
}
},
...
}
De volgende machtiging is vereist om de REST API van de aanvraagservice aan te roepen. Zie Machtigingen verlenen voor toegangstokens voor meer informatie.
Machtigingstype | Machtiging |
---|---|
Toepassing | 3db474b9-6a0c-4840-96ac-1fceb342124f/.default |
Nettolading van uitgifteaanvraag
De nettolading van de uitgifteaanvraag bevat informatie over uw verifieerbare referentieuitgifteaanvraag. In het volgende voorbeeld ziet u een uitgifteaanvraag met behulp van een pincodecodestroom met gebruikersclaims, zoals voornaam en achternaam. Het resultaat van deze aanvraag retourneert een QR-code met een koppeling om het uitgifteproces te starten.
{
"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",
"manifest": "https://verifiedid.did.msidentity.com/v1.0/tenants/aaaabbbb-0000-cccc-1111-dddd2222eeee/verifiableCredentials/contracts/MTIzNDU2NzgtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwdmVyaWZpZWRjcmVkZW50aWFsZXhwZXJ0/manifest",
"pin": {
"value": "3539",
"length": 4
},
"claims": {
"given_name": "Megan",
"family_name": "Bowen"
},
"expirationDate": "2024-12-31T23:59:59.000Z"
}
De payload bevat de volgende eigenschappen:
Parameter | Type | Beschrijving |
---|---|---|
includeQRCode |
Booleaanse waarde | Optioneel. Bepaalt of een QR-code is opgenomen in het antwoord van deze aanvraag. Presenteer de QR-code en vraag de gebruiker deze te scannen. Als u de QR-code scant, wordt de authenticator-app gestart met deze uitgifteaanvraag. Mogelijke waarden zijn true of false (standaard). Wanneer u de waarde false instelt, gebruikt u de eigenschap Return url om een dieptekoppeling weer te geven. |
callback |
Callback | Verplicht. Hiermee kan de ontwikkelaar asynchroon informatie over de stroom ophalen tijdens het verifieerbare referentieuitgifteproces. De ontwikkelaar kan bijvoorbeeld een aanroep willen wanneer de gebruiker de QR-code heeft gescand of als de uitgifteaanvraag slaagt of mislukt. |
authority |
tekenreeks | De gedecentraliseerde id (DID) van de verlener. Zie Referenties en omgevingsgegevens verzamelen om uw voorbeeldtoepassing in te stellen voor meer informatie. |
registration |
RequestRegistration | Biedt informatie over de verlener die kan worden weergegeven in de verificator-app. |
type |
tekenreeks | Het verifieerbare referentietype. Moet overeenkomen met het type zoals gedefinieerd in het verifieerbare referentiemanifest. Voorbeeld: VerifiedCredentialExpert . Zie De geverifieerde referentie-expertkaart maken in Azure voor meer informatie. |
manifest |
tekenreeks | De URL van het verifieerbare referentiemanifestdocument. Zie Referenties en omgevingsgegevens verzamelen om uw voorbeeldtoepassing in te stellen voor meer informatie. |
claims |
tekenreeks | Optioneel. Kan alleen worden gebruikt voor de attestation-stroom voor id-tokenhints om een verzameling asserties over het onderwerp op te nemen in de verifieerbare referentie. |
pin |
SPELD | Optioneel. Pincode kan alleen worden gebruikt met de attestation-stroom id-tokenhint . Een pincodenummer om extra beveiliging te bieden tijdens uitgifte. U genereert een pincode en presenteert deze aan de gebruiker in uw app. De gebruiker moet de pincode opgeven die u hebt gegenereerd. |
expirationDate |
tekenreeks | Optioneel. De vervaldatum kan alleen worden gebruikt met de attestation-attestation-stroom id-tokenhint . Indien opgegeven, moet de waarde een datum zijn die wordt uitgedrukt in de indeling ISO8601 . De datum overschrijft de geldigheidsinterval in de definitie van de referentieregels voor deze uitgifteaanvraag. Gebruik deze instelling om expliciet te bepalen wanneer een referentie verloopt, zoals het einde van de dag, het einde van de maand of het einde van het jaar, ongeacht wanneer deze is uitgegeven. Houd er rekening mee dat de datum wordt uitgedrukt in DE UTC-indeling. Als u het einde van het jaar opgeeft, waarbij de tijd is ingesteld op 23:59:59 , is dat 1 seconde tot middernacht in utc-tijd. Elke gebruiker in een andere tijdzone krijgt de vervaldatum die wordt weergegeven in de lokale tijdzone in Microsoft Authenticator. Dit betekent dat als u zich in de CET-tijdzone bevindt, het wordt gepresenteerd als 1 januari 11:00 uur.Voor het referentiecontract moet de vlag allowOverrideValidityOnIssuance zijn ingesteld op true. |
Er zijn momenteel vier typen claims attestation die u in de nettolading kunt verzenden. Microsoft Entra geverifieerde ID gebruikt vier manieren om claims in te voegen in een verifieerbare referentie en deze informatie te bevestigen met de DID van de verlener. Hier volgen de vier typen:
- Id-token
- ID-tokenhint
- Verifieerbare referenties via een verifieerbare presentatie
- Zelf-geteste claims
Gedetailleerde informatie over de invoertypen vindt u in Het aanpassen van uw verifieerbare referentie.
Type aanvraagregister
Het RequestRegistration
type biedt informatieregistratie voor de verlener. Het RequestRegistration
type bevat de volgende eigenschappen:
Eigenschap | Type | Omschrijving |
---|---|---|
clientName |
tekenreeks | Een weergavenaam van de uitgever van de verifieerbare referentie. |
logoUrl |
tekenreeks | Optioneel. De URL voor het logo van de verlener. |
termsOfServiceUrl |
tekenreeks | Optioneel. De URL voor de gebruiksvoorwaarden van de verifieerbare referentie die u uitgeeft. |
Notitie
Op dit moment wordt de RequestRegistration
informatie niet weergegeven tijdens de uitgifte in de Microsoft Authenticator-app. Deze informatie kan echter worden gebruikt in de nettolading.
Type callback
De REST API van de aanvraagservice genereert verschillende gebeurtenissen naar het callback-eindpunt. Met deze gebeurtenissen kunt u de gebruikersinterface bijwerken en doorgaan met het proces nadat de resultaten zijn geretourneerd naar de toepassing. Het Callback
type bevat de volgende eigenschappen:
Eigenschap | Type | Omschrijving |
---|---|---|
url |
tekenreeks | URI naar het callback-eindpunt van uw toepassing. De URI moet verwijzen naar een bereikbaar eindpunt op internet, anders genereert de service een onleesbare callback-URL. Geaccepteerde indelingen IPv4, IPv6 of DNS-omzetbare hostnaam. Zie veelgestelde vragen om uw netwerk te beveiligen. |
state |
tekenreeks | Correleert de callback-gebeurtenis met de status die is doorgegeven in de oorspronkelijke nettolading. |
headers |
tekenreeks | Optioneel. U kunt een verzameling HTTP-headers opnemen die vereist zijn voor het ontvangende einde van het POST-bericht. De huidige ondersteunde headerwaarden zijn de api-key of de Authorization headers. Elke andere header genereert een ongeldige callback-headerfout |
Type speld
Het pin
type definieert een pincode die kan worden weergegeven als onderdeel van de uitgifte. pin
is optioneel en, indien gebruikt, moet altijd buiten de band worden verzonden. Wanneer u een HASH-pincodecode gebruikt, moet u de salt
eigenschappen en alg
iterations
eigenschappen definiëren. pin
bevat de volgende eigenschappen:
Eigenschap | Type | Omschrijving |
---|---|---|
value |
tekenreeks | Bevat de pincodewaarde in tekst zonder opmaak. Wanneer u een hash-pincode gebruikt, bevat de waarde-eigenschap de gezouten hash, base64 gecodeerd. |
type |
tekenreeks | Het type pincode. Mogelijke waarde: numeric (standaard). |
length |
geheel getal | De lengte van de pincode. De standaardlengte is 6, het minimum is 4 en het maximum is 16. |
salt |
tekenreeks | Het zout van de gehashte pincodecode. Het zout wordt voorafgegaan tijdens de hashberekening. Codering: UTF-8. |
alg |
tekenreeks | Het hash-algoritme voor de gehashte pincode. Ondersteund algoritme: sha256 . |
iterations |
geheel getal | Het aantal hash-iteraties. Mogelijke waarde: 1 . |
Succesvolle respons
Als dit lukt, retourneert deze methode een antwoordcode (HTTP 201 Created) en een verzameling gebeurtenisobjecten in de hoofdtekst van het antwoord. In de volgende JSON ziet u een geslaagd antwoord:
{
"requestId": "799f23ea-5241-45af-99ad-cf8e5018814e",
"url": "openid://vc?request_uri=https://verifiedid.did.msidentity.com/v1.0/00001111-aaaa-2222-bbbb-3333cccc4444/verifiableCredentials/request/178319f7-20be-4945-80fb-7d52d47ae82e",
"expiry": 1622227690,
"qrCode": "data:image/png;base64,iVBORw0KggoA<SNIP>"
}
Het antwoord bevat de volgende eigenschappen:
Eigenschap | Type | Omschrijving |
---|---|---|
requestId |
tekenreeks | Een automatisch gegenereerde aanvraag-id. De callback maakt gebruik van dezelfde aanvraag, zodat u de uitgifteaanvraag en de bijbehorende callbacks kunt bijhouden. |
url |
tekenreeks | Een URL waarmee de authenticator-app wordt gestart en het uitgifteproces wordt gestart. U kunt deze URL aan de gebruiker presenteren als ze de QR-code niet kunnen scannen. |
expiry |
geheel getal | Geeft aan wanneer het antwoord verloopt. |
qrCode |
tekenreeks | Een QR-code die de gebruiker kan scannen om de uitgiftestroom te starten. |
Wanneer uw app het antwoord ontvangt, moet de app de QR-code aan de gebruiker presenteren. De gebruiker scant de QR-code, waarmee de verificator-app wordt geopend en het uitgifteproces wordt gestart.
Foutrespons
Als er een fout optreedt met de aanvraag, wordt er een foutbericht geretourneerd en moet deze op de juiste wijze worden verwerkt door de app.
Callback-gebeurtenissen
Het callback-eindpunt wordt aangeroepen wanneer een gebruiker de QR-code scant, de deep link van de authenticator-app gebruikt of het uitgifteproces voltooit.
Eigenschap | Type | Omschrijving |
---|---|---|
requestId |
tekenreeks | Toegewezen aan de oorspronkelijke aanvraag toen de nettolading werd gepost naar de verifiable Credentials-service. |
requestStatus |
tekenreeks | De status die is geretourneerd voor de aanvraag. Mogelijke waarden:
|
state |
tekenreeks | Retourneert de statuswaarde die u hebt doorgegeven in de oorspronkelijke nettolading. |
error |
error | Wanneer de eigenschapswaarde code is issuance_error , bevat deze eigenschap informatie over de fout. |
error.code |
tekenreeks | De retourfoutcode. |
error.message |
tekenreeks | Het foutbericht. |
In het volgende voorbeeld ziet u een callback-nettolading wanneer de authenticator-app de uitgifteaanvraag start:
{
"requestId": "799f23ea-5241-45af-99ad-cf8e5018814e",
"requestStatus":"request_retrieved",
"state": "de19cb6b-36c1-45fe-9409-909a51292a9c"
}
In het volgende voorbeeld ziet u een callback-nettolading nadat de gebruiker het uitgifteproces heeft voltooid:
{
"requestId": "799f23ea-5241-45af-99ad-cf8e5018814e",
"requestStatus":"issuance_successful",
"state": "de19cb6b-36c1-45fe-9409-909a51292a9c"
}
Callback-fouten
Het callback-eindpunt kan worden aangeroepen met een foutbericht. De volgende tabel bevat de foutcodes:
In het volgende voorbeeld ziet u een callback-nettolading wanneer er een fout is opgetreden:
{
"requestId": "799f23ea-5241-45af-99ad-cf8e5018814e",
"requestStatus": "issuance_error",
"state": "de19cb6b-36c1-45fe-9409-909a51292a9c",
"error": {
"code":"IssuanceFlowFailed",
"message":"issuance_service_error”,
}
}
Volgende stappen
Meer informatie over het aanroepen van de REST API van de aanvraagservice.