PresentationSession.GetCredentialData(String, CredentialDataRequest) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Извлекает данные из именованных учетных данных в текущем сеансе презентации.
[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
Параметры
- credentialName
- String
имя извлекаемого учетных данных.
- request
- CredentialDataRequest
данные, полученные из учетных данных
Возвращаемое значение
Если учетные данные не найдены, возвращает значение NULL. CredentialDataResult
В противном случае объект, содержащий данные записи, организованные пространством имен и криптографически прошедшим проверку подлинности представлением одних и того же данных, привязанного к текущему сеансу.
- Атрибуты
Комментарии
Извлекает данные из именованных учетных данных в текущем сеансе презентации.
Если проверка доступа завершается ошибкой для одного из запрошенных записей или если запись не существует, запись просто не возвращается. Приложение может обнаружить это с помощью CredentialDataResult.Entries#getStatus(String, String)
метода на каждом из запрошенных записей.
Приложение не должно делать никаких предположений о необходимости проверки подлинности пользователей. Вместо этого приложение должно сначала запросить значения элементов данных, а затем проверить возвращенные CredentialDataResult.Entries
. Если CredentialDataResult.Entries#STATUS_USER_AUTHENTICATION_FAILED
возвращается приложение, должно получить android.hardware.biometrics.BiometricPrompt.CryptoObject
ссылку на этот объект и использовать его с android.hardware.biometrics.BiometricPrompt
. После успешной проверки подлинности приложение может снова вызвать #getCredentialData(String, CredentialDataRequest)
.
Этот метод можно вызывать несколько раз, используя одно и то же имя учетных данных. Если это делается, будет использоваться тот же ключ проверки подлинности.
Если подпись читателя задана в параметре запроса (с помощью CredentialDataRequest.Builder#setReaderSignature(byte[])
метода), она должна содержать байты COSE_Sign1
структуры, как определено в RFC 8152. Для полезных данных nil
следует использовать, а отсоединяемые полезные данные — ReaderAuthenticationBytes
это CBOR, описанный ниже.
ReaderAuthentication = [
"ReaderAuthentication",
SessionTranscript,
ItemsRequestBytes
]
ItemsRequestBytes = #6.24(bstr .cbor ItemsRequest)
ReaderAuthenticationBytes = #6.24(bstr .cbor ReaderAuthentication)
где ItemsRequestBytes
находятся байты сообщения запроса, заданные в параметре CredentialDataRequest.Builder#setRequestMessage(byte[])
запроса (с помощью метода).
Открытый ключ, соответствующий ключу, используемому для создания подписи, можно найти в x5chain
незащищенном элементе заголовка COSE_Sign1
структуры (как описано в черновик-ietf-cose-x509-08). Существует хотя бы один сертификат в указанном элементе, и может быть больше (и если да, каждый сертификат должен быть подписан его преемником).
Элементы данных, защищенные проверкой подлинности читателя, requestMessage
возвращаются, только если он подписан главным сертификатом в цепочке сертификатов читателя, а элемент данных настроен с AccessControlProfile
настроенным сертификатом X.509 для ключа, который отображается в цепочке сертификатов.
Обратите внимание, что CBOR запроса используется только для принудительной проверки подлинности читателя, он не используется для определения записей, возвращаемых этим API. Ожидается, что приложение анализирует сообщение запроса и фильтрует его в соответствии с предпочтениями пользователя и /или согласием.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.