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
名前空間別に編成されたエントリ データと、現在のセッションにバインドされた同じデータの暗号化で認証された表現を含むオブジェクト。
- 属性
注釈
現在のプレゼンテーション セッションの名前付き資格情報からデータを取得します。
要求されたエントリの 1 つに対してアクセス制御チェックが失敗した場合、またはエントリが存在しない場合、エントリは返されません。 アプリケーションは、要求された各エントリのメソッドを 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[])
使用)。
署名の作成に使用されるキーに対応する公開キーは、x5chain
構造体のCOSE_Sign1
保護されていないヘッダー要素にあります (draft-ietf-cose-x509-08 で説明されているように)。 上記の要素には少なくとも 1 つの証明書があり、さらに存在する可能性があります (存在する場合は、各証明書が後続の証明書によって署名されている必要があります)。
リーダー認証によって保護されたデータ要素は、リーダーの証明書チェーンの最上位の証明書によって署名され、 requestMessage
データ要素が証明書チェーンに表示されるキーに対して X.509 証明書で構成されている AccessControlProfile
場合にのみ返されます。
要求メッセージ CBOR は、リーダー認証の適用にのみ使用され、この API が返すエントリを決定するために使用されないことに注意してください。 アプリケーションは、要求メッセージを解析し、ユーザーの好みや同意に従ってフィルター処理したと想定されます。
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。