Method: vdc.provisionMobileSecurityObjects

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 (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
Felder
requestMetadata

object (RequestMetadata)

Die Metadaten zur Anfrage, erforderlich in allen Anfragen.

deviceReferenceId

string

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

string

Eine intransparente Kennung, die einen bestimmten Berechtigungsnachweis auf einem Gerät darstellt.

Beispiel: UUID

authKeys[]

object (AuthKey)

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

object (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

object (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

string

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 (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
Felder
responseMetadata

object (ResponseMetadata)

Die Metadaten zur Antwort, erforderlich in allen Antworten.

mobileSecurityObjects[]

object (MobileSecurityObject)

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 presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
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

object (EncryptedData)

Der verschlüsselte Wert und die Verschlüsselungsmetadaten, die zum Entschlüsseln des Werts erforderlich sind.

unencryptedValue

string

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 presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
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

object (EncryptedData)

Der verschlüsselte Wert und die Verschlüsselungsmetadaten, die zum Entschlüsseln des Werts erforderlich sind.

unencryptedValue

string

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 presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
Felder
expirationTimeMillis

string (int64 format)

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

object (EncryptedData)

Der verschlüsselte Wert und die Verschlüsselungsmetadaten, die zum Entschlüsseln des Werts erforderlich sind.

unencryptedValue

string

Der base64-codierte Wert des Berechtigungsnachweises.