Freigeben über


PresentationSession.GetCredentialData(String, CredentialDataRequest) Methode

Definition

Ruft Daten aus einer benannten Anmeldeinformation in der aktuellen Präsentationssitzung ab.

[Android.Runtime.Register("getCredentialData", "(Ljava/lang/String;Landroid/security/identity/CredentialDataRequest;)Landroid/security/identity/CredentialDataResult;", "GetGetCredentialData_Ljava_lang_String_Landroid_security_identity_CredentialDataRequest_Handler", ApiSince=33)]
public abstract Android.Security.Identity.CredentialDataResult? GetCredentialData (string credentialName, Android.Security.Identity.CredentialDataRequest request);
[<Android.Runtime.Register("getCredentialData", "(Ljava/lang/String;Landroid/security/identity/CredentialDataRequest;)Landroid/security/identity/CredentialDataResult;", "GetGetCredentialData_Ljava_lang_String_Landroid_security_identity_CredentialDataRequest_Handler", ApiSince=33)>]
abstract member GetCredentialData : string * Android.Security.Identity.CredentialDataRequest -> Android.Security.Identity.CredentialDataResult

Parameter

credentialName
String

der Name der abzurufenden Anmeldeinformationen.

request
CredentialDataRequest

die Daten, die aus den Anmeldeinformationen abgerufen werden sollen

Gibt zurück

Wenn die Anmeldeinformationen nicht gefunden wurden, wird NULL zurückgegeben. Andernfalls ein CredentialDataResult Objekt, das Eintragsdaten nach Namespace organisiert und eine kryptografisch authentifizierte Darstellung derselben Daten enthält, die an die aktuelle Sitzung gebunden sind.

Attribute

Hinweise

Ruft Daten aus einer benannten Anmeldeinformation in der aktuellen Präsentationssitzung ab.

Wenn eine Zugriffssteuerungsprüfung für einen der angeforderten Einträge fehlschlägt oder der Eintrag nicht vorhanden ist, wird der Eintrag einfach nicht zurückgegeben. Die Anwendung kann dies mithilfe der CredentialDataResult.Entries#getStatus(String, String) Methode für jede der angeforderten Einträge erkennen.

Die Anwendung sollte keine Annahmen darüber treffen, ob die Benutzerauthentifizierung erforderlich ist. Stattdessen sollte die Anwendung zuerst die Werte der Datenelemente anfordern und dann die zurückgegebene CredentialDataResult.EntriesÜberprüfen. Wenn CredentialDataResult.Entries#STATUS_USER_AUTHENTICATION_FAILED die Anwendung zurückgegeben wird, sollte ein android.hardware.biometrics.BiometricPrompt.CryptoObject Objekt abgerufen werden, das auf dieses Objekt verweist und es mit einem android.hardware.biometrics.BiometricPrompt. Nach erfolgreicher Authentifizierung kann die Anwendung erneut aufrufen #getCredentialData(String, CredentialDataRequest) .

Es ist zulässig, diese Methode mehrmals mit demselben Anmeldeinformationsnamen aufzurufen. Wenn dies geschieht, wird derselbe Authentifizierungsschlüssel verwendet.

Wenn die Lesesignatur im Anforderungsparameter (über die CredentialDataRequest.Builder#setReaderSignature(byte[]) Methode) festgelegt wird, muss sie die Bytes einer COSE_Sign1 Struktur enthalten, wie in RFC 8152 definiert. Für die Nutzlast muss verwendet werden und die losgelöste Nutzlast nil ist die ReaderAuthenticationBytes unten beschriebene CBOR.

ReaderAuthentication = [
                  "ReaderAuthentication",
                  SessionTranscript,
                  ItemsRequestBytes
                ]

                ItemsRequestBytes = #6.24(bstr .cbor ItemsRequest)

                ReaderAuthenticationBytes = #6.24(bstr .cbor ReaderAuthentication)

dabei ItemsRequestBytes handelt es sich um die Bytes des Anforderungsnachrichtensatzes im Anforderungsparameter (über die CredentialDataRequest.Builder#setRequestMessage(byte[]) Methode).

Der öffentliche Schlüssel, der dem Schlüssel entspricht, der zum Erstellen der Signatur verwendet wird, finden Sie im x5chain ungeschützten Headerelement der COSE_Sign1 Struktur (wie in draft-ietf-cose-x509-08 beschrieben). Es wird mindestens ein Zertifikat in diesem Element geben, und es kann mehr geben (und wenn ja, muss jedes Zertifikat von seinem Nachfolger signiert werden).

Datenelemente, die durch die Leserauthentifizierung geschützt sind, werden zurückgegeben, wenn und nur dann, requestMessage wenn es von der höchsten Zertifikatkette des Lesers signiert ist, und das Datenelement mit einem mit einem AccessControlProfile X.509-Zertifikat konfigurierten Zertifikat für einen Schlüssel konfiguriert ist, der in der Zertifikatkette angezeigt wird.

Beachten Sie, dass die Anforderungsnachricht CBOR nur zum Erzwingen der Leseleseauthentifizierung verwendet wird, es wird nicht verwendet, um zu bestimmen, welche Einträge diese API zurückgeben wird. Es wird erwartet, dass die Anwendung die Anforderungsnachricht analysiert und nach Benutzereinstellungen und/oder Zustimmung gefiltert hat.

Java-Dokumentation für android.security.identity.PresentationSession.getCredentialData(java.lang.String, android.security.identity.CredentialDataRequest).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: