Ein Endpunkt, um einen Berechtigungsnachweis bereitzustellen.
HTTP-Anfrage
POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects
Anfragetext
Der Anfragetext enthält Daten mit folgender Struktur:
| JSON-Darstellung |
|---|
{ "requestMetadata": { object ( |
| Felder | |
|---|---|
requestMetadata |
Die Metadaten zur Anfrage, erforderlich in allen Anfragen. |
deviceReferenceId |
Die zum Gerät gehörende ID und der mit dem Gerät verknüpfte Identitätsschlüssel. Dabei handelt es sich NICHT um eine Geräte-ID. Wenn ein Nutzer zwei verschiedene Ausweisdokumente auf demselben Gerät verwendet, unterscheidet sich diese ID bei beiden voneinander. Die ID wird bei allen Anfragen angegeben und kann dazu verwendet werden, Anfragen zu korrelieren. |
credentialId |
Eine intransparente Kennung, die einen bestimmten Berechtigungsnachweis auf einem Gerät darstellt. Beispiel: UUID |
authKeys[] |
Eine Liste der x509-Zertifikate, die zertifiziert werden müssen, um als mobile Sicherheitsobjekte (Mobile Security Objects, MSOs) verwendet werden zu können. Jedes Zertifikat wird vom Berechtigungsnachweisschlüssel des Geräts signiert. |
proofOfProvisioning |
Ein Objekt vom Gerät, das die korrekte Bereitstellung des Berechtigungsnachweises belegt. Weitere Informationen findest du in der Objektdefinition. Hinweis: Das Objekt wird nur bei der ersten Bereitstellung von MSOs angegeben, nachdem der Berechtigungsnachweis bereitgestellt wurde. Bei Verwendung dieser Methode für MSO-Aktualisierungen wird es nicht angegeben. |
deviceEncryptionKey |
Ein Objekt, das den sitzungsspezifischen Verschlüsselungsschlüssel und die zugehörigen Metadaten enthält. Dieser Schlüssel wird zur Verschlüsselung eines Werts auf dem Gerät verwendet. Das Objekt darf beim Einrichtungsprozess nicht in der Sandbox-Umgebung verwendet werden, um anzugeben, dass der Aussteller Klartextdaten zurückgeben sollte. Dies sollte immer in der Produktionsumgebung erfolgen. |
credentialVersionId |
Die Versionsnummer des Ausweisdokuments, die das Gerät aktuell hat. Damit sollten KEINE MSOs (Mobile Security Objects) für alte Versionen von Ausweisdokumenten bereitgestellt werden. Wenn diese Angabe nicht mit der aktuellen, im Datensatz des Ausstellers bereitgestellten Version übereinstimmt, sollte stattdessen eine ErrorResponse mit InvalidState zurückgegeben werden. |
Antworttext
Eine Antwort, die das Ergebnis der Bereitstellung von mobilen Sicherheitsobjekten enthält.
Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:
| JSON-Darstellung |
|---|
{ "responseMetadata": { object ( |
| Felder | |
|---|---|
responseMetadata |
Die Metadaten zur Antwort, erforderlich in allen Antworten. |
mobileSecurityObjects[] |
Eine Liste der MobileSecurityObjects, die bereit sind. Diese Liste ist möglicherweise leer, wenn derzeit keine MobileSecurityObjects verfügbar sind. |
AuthKey
Ein vom Berechtigungsnachweisschlüssel des Geräts signiertes x509-Zertifikat, das vom Aussteller zertifiziert werden muss.
Diese Zertifikate werden vom Wallet über die Android Identity Credential API abgerufen und sind unter https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification() dokumentiert.
| JSON-Darstellung |
|---|
{ // Union field |
| Felder | |
|---|---|
Union-Feld presencetype. Ein oneof, das angibt, wie der AuthKey vorgelegt wird. Für presencetype ist nur einer der folgenden Werte zulässig: |
|
encryptedData |
Der verschlüsselte Wert und die Verschlüsselungsmetadaten, die zum Entschlüsseln des Werts erforderlich sind. |
unencryptedValue |
Der base64-codierte Wert des AuthKey. |
ProofOfProvisioning
Eine vom Berechtigungsnachweisschlüssel des Geräts signierte COSE_Sign1-Struktur, die angibt, dass der zugehörige Berechtigungsnachweis korrekt im sicheren Speicher des Geräts bereitgestellt wurde.
Diese Struktur wird von der Android Identity Credential API definiert und ist unter https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData) dokumentiert.
| JSON-Darstellung |
|---|
{ // Union field |
| Felder | |
|---|---|
Union-Feld presencetype. Ein oneof, das angibt, wie der ProofOfProvisioning vorgelegt wird. Für presencetype ist nur einer der folgenden Werte zulässig: |
|
encryptedData |
Der verschlüsselte Wert und die Verschlüsselungsmetadaten, die zum Entschlüsseln des Werts erforderlich sind. |
unencryptedValue |
Der base64-codierte Wert des ProofOfProvisioning. |
MobileSecurityObject
Ein Objekt, in dem die von jedem Datenelement im Berechtigungsnachweis berechneten Digests verborgen sind. Dies wird als statische Authentifizierungsdaten dargestellt, die das erforderliche Format für die Android Identity Credential-Bibliothek sind. Hier finden Sie weitere Informationen zum Erstellen statischer Authentifizierungsdaten.
| JSON-Darstellung |
|---|
{ "expirationTimeMillis": string, // Union field |
| Felder | |
|---|---|
expirationTimeMillis |
Ein Zeitstempel, der angibt, wann das mobile Sicherheitsobjekt abläuft. Der Zeitstempel wird als Anzahl der Millisekunden seit der Unix-Epoche angegeben. |
Union-Feld presencetype. Ein oneof, das angibt, wie der Berechtigungsnachweis vorgelegt wird. Für presencetype ist nur einer der folgenden Werte zulässig: |
|
encryptedData |
Der verschlüsselte Wert und die Verschlüsselungsmetadaten, die zum Entschlüsseln des Werts erforderlich sind. |
unencryptedValue |
Der base64-codierte Wert des Berechtigungsnachweises. |