Partager via


PresentationSession.GetCredentialData(String, CredentialDataRequest) Méthode

Définition

Récupère des données à partir d’informations d’identification nommées dans la session de présentation active.

[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

Paramètres

credentialName
String

nom des informations d’identification à récupérer.

request
CredentialDataRequest

données à récupérer à partir des informations d’identification

Retours

Si les informations d’identification n’ont pas été trouvées, retourne null. Sinon, un CredentialDataResult objet contenant des données d’entrée organisées par espace de noms et une représentation authentifiée par chiffrement des mêmes données, liée à la session active.

Attributs

Remarques

Récupère des données à partir d’informations d’identification nommées dans la session de présentation active.

Si une vérification du contrôle d’accès échoue pour l’une des entrées demandées ou si l’entrée n’existe pas, l’entrée n’est simplement pas retournée. L’application peut la détecter à l’aide de la CredentialDataResult.Entries#getStatus(String, String) méthode sur chacune des entrées demandées.

L’application ne doit pas faire d’hypothèses sur la nécessité de l’authentification de l’utilisateur. Au lieu de cela, l’application doit demander d’abord les valeurs des éléments de données, puis examiner le retour CredentialDataResult.Entries. Si CredentialDataResult.Entries#STATUS_USER_AUTHENTICATION_FAILED elle est retournée, l’application doit obtenir une android.hardware.biometrics.BiometricPrompt.CryptoObject référence à cet objet et l’utiliser avec un android.hardware.biometrics.BiometricPrompt. Une fois l’authentification réussie, l’application peut appeler #getCredentialData(String, CredentialDataRequest) à nouveau.

Il est permis d’appeler cette méthode plusieurs fois à l’aide du même nom d’informations d’identification. Si cette opération est effectuée, la même clé d’authentification sera utilisée.

Si la signature du lecteur est définie dans le paramètre de requête (via la CredentialDataRequest.Builder#setReaderSignature(byte[]) méthode), elle doit contenir les octets d’une COSE_Sign1 structure tel que défini dans RFC 8152. La charge utile nil doit être utilisée et la charge utile détachée est la ReaderAuthenticationBytes CBOR décrite ci-dessous.

ReaderAuthentication = [
                  "ReaderAuthentication",
                  SessionTranscript,
                  ItemsRequestBytes
                ]

                ItemsRequestBytes = #6.24(bstr .cbor ItemsRequest)

                ReaderAuthenticationBytes = #6.24(bstr .cbor ReaderAuthentication)

ItemsRequestBytes sont les octets du jeu de messages de requête dans le paramètre de requête (via la CredentialDataRequest.Builder#setRequestMessage(byte[]) méthode).

La clé publique correspondant à la clé utilisée pour créer la signature est disponible dans l’élément x5chain d’en-tête non protégé de la COSE_Sign1 structure (comme décrit dans draft-ietf-cose-x509-08). Il y aura au moins un certificat dans cet élément et il peut y avoir plus (et le cas échéant, chaque certificat doit être signé par son successeur).

Les éléments de données protégés par l’authentification du lecteur sont retournés si, et uniquement s’ils requestMessage sont signés par le certificat le plus haut dans la chaîne de certificats du lecteur, et l’élément de données est configuré avec un AccessControlProfile certificat X.509 pour une clé qui apparaît dans la chaîne de certificats.

Notez que le message de requête CBOR est utilisé uniquement pour appliquer l’authentification du lecteur, il n’est pas utilisé pour déterminer les entrées retournées par cette API. L’application est censée avoir analysé le message de demande et l’a filtré en fonction de la préférence de l’utilisateur et/ou du consentement.

Documentation Java pour android.security.identity.PresentationSession.getCredentialData(java.lang.String, android.security.identity.CredentialDataRequest).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à