PresentationSession.GetCredentialData(String, CredentialDataRequest) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從目前簡報會話中的具名認證擷取數據。
[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[])
方法),它必須包含 RFC 8152 中所定義的結構位元組 COSE_Sign1
。 應使用承載 nil
,而中斷鏈接的承載如下 ReaderAuthenticationBytes
所述 CBOR。
ReaderAuthentication = [
"ReaderAuthentication",
SessionTranscript,
ItemsRequestBytes
]
ItemsRequestBytes = #6.24(bstr .cbor ItemsRequest)
ReaderAuthenticationBytes = #6.24(bstr .cbor ReaderAuthentication)
其中 ItemsRequestBytes
是要求參數中設定的要求訊息位元組(透過 CredentialDataRequest.Builder#setRequestMessage(byte[])
方法)。
對應至用來建立簽章之COSE_Sign1
密鑰的公鑰,可以在 結構的未受保護的標頭元素中找到x5chain
(如 draft-ietf-cose-x509-08 中所述。 上述元素中至少會有一個憑證,而且可能會有更多的憑證(如果是的話,每個憑證都必須由其繼任者簽署)。
如果 requestMessage
讀取器憑證鏈結中的最上層憑證簽署,且數據元素是以 X.509 憑證設定的,則會傳回由讀取器驗證所保護的數據元素 AccessControlProfile
,而該憑證會以 X.509 憑證進行設定。
請注意,要求訊息 CBOR 僅用於強制執行讀取器驗證,它不會用於判斷此 API 將傳回的專案。 應用程式應該已剖析要求訊息,並根據使用者喜好設定和/或同意加以篩選。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。