PresentationSession.GetCredentialData(String, CredentialDataRequest) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Recupera dados de uma credencial nomeada na sessão de apresentação atual.
[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
Parâmetros
- credentialName
- String
O nome da credencial a ser recuperada.
- request
- CredentialDataRequest
os dados a serem recuperados da credencial
Retornos
Se a credencial não foi encontrada, retorna null. Caso contrário, um CredentialDataResult
objeto contendo dados de entrada organizados por namespace e uma representação autenticada criptograficamente dos mesmos dados, vinculado à sessão atual.
- Atributos
Comentários
Recupera dados de uma credencial nomeada na sessão de apresentação atual.
Se uma verificação de controle de acesso falhar para uma das entradas solicitadas ou se a entrada não existir, a entrada simplesmente não será retornada. O aplicativo pode detectar isso usando o CredentialDataResult.Entries#getStatus(String, String)
método em cada uma das entradas solicitadas.
O aplicativo não deve fazer suposições sobre se a autenticação do usuário é necessária. Em vez disso, o aplicativo deve solicitar os valores de elementos de dados primeiro e, em seguida, examinar o CredentialDataResult.Entries
. Se CredentialDataResult.Entries#STATUS_USER_AUTHENTICATION_FAILED
for retornado, o aplicativo deve obter um android.hardware.biometrics.BiometricPrompt.CryptoObject
que faz referência a esse objeto e usá-lo com um android.hardware.biometrics.BiometricPrompt
arquivo . Após a autenticação bem-sucedida, o aplicativo pode chamar #getCredentialData(String, CredentialDataRequest)
novamente.
É permitido chamar esse método várias vezes usando o mesmo nome de credencial. Se isso for feito, a mesma chave de autenticação será usada.
Se a assinatura do leitor estiver definida no parâmetro request (por meio do CredentialDataRequest.Builder#setReaderSignature(byte[])
método), ela deverá conter os bytes de uma COSE_Sign1
estrutura, conforme definido na RFC 8152. Para a carga nil
útil deve ser utilizada e a carga útil separada é a ReaderAuthenticationBytes
CBOR descrita abaixo.
ReaderAuthentication = [
"ReaderAuthentication",
SessionTranscript,
ItemsRequestBytes
]
ItemsRequestBytes = #6.24(bstr .cbor ItemsRequest)
ReaderAuthenticationBytes = #6.24(bstr .cbor ReaderAuthentication)
onde ItemsRequestBytes
são os bytes da mensagem de solicitação definidos no parâmetro request (por meio do CredentialDataRequest.Builder#setRequestMessage(byte[])
método).
A chave pública correspondente à chave usada para fazer a assinatura pode ser encontrada no x5chain
elemento de cabeçalho desprotegido da COSE_Sign1
estrutura (conforme descrito em draft-ietf-cose-x509-08). Haverá pelo menos um certificado no referido elemento e pode haver mais (e em caso afirmativo, cada certificado deve ser assinado por seu sucessor).
Os elementos de dados protegidos pela autenticação do leitor são retornados se, e somente se, requestMessage
for assinado pelo certificado mais alto da cadeia de certificados do leitor, e o elemento de dados for configurado com um AccessControlProfile
certificado X.509 configurado para uma chave que aparece na cadeia de certificados.
Observe que a mensagem de solicitação CBOR é usada apenas para impor a autenticação do leitor, ela não é usada para determinar quais entradas essa API retornará. Espera-se que o aplicativo tenha analisado a mensagem de solicitação e filtrado de acordo com a preferência e/ou consentimento do usuário.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.