概要
NFCレポートの警告は、Diditがチップの読み取りと検証の過程で検出したすべての状態を示します。警告はnfc_verifications[]の各項目にあるwarnings[]配列に格納され(NFCレポートを参照)、featureは"NFC"に設定されます。各エントリは共通の警告オブジェクトの形式に従います:feature、risk、additional_data、log_type、short_description、long_description、node_id。
各警告は3つの層で構成されます。
riskコード:コード内で照合に使える安定した識別子です(以下に記載のコード)。log_type:information、warning、errorのいずれかです。ワークフローでそのリスクに設定したアクションから導出されます:No action →information、Review →warning、Decline →error。- 判定への影響:同じ設定済みアクションがNFCレポートの
statusも決定します。確認アクションではIn Reviewに、却下アクションではDeclinedに変わります。
SKIPPED_NFC_VALIDATION、NFC_CHIP_NOT_VERIFIED、NFC_TRUST_ANCHOR_MISSING、NFC_AND_OCR_DATA_NOT_SAME)で、これに加えて5つの日本のマイナンバーカードのリスクがあり、それぞれに個別の設定があります。2つの証明書リスク(DSC_CERTIFICATE_REVOKED、DSC_CERTIFICATE_EXPIRED)は情報提供のみです。常にlog_type: "information"が付与され、それ自体でNFCのステータスを変更することはありません。
NFCモジュールが生成するリスクコードの全一覧を以下に示します。これ以外のNFCリスクコードは存在しません。
発生する警告
SKIPPED_NFC_VALIDATIONはNFC_CHIP_NOT_VERIFIEDおよびNFC_TRUST_ANCHOR_MISSINGと同時には発生しません。チップ検証の警告は、チップの読み取りがスキップされなかった場合にのみ評価されるためです。また、2つのチップ検証の警告も互いに同時には発生しません。説明文字列の一覧
APIは、各リスクについて以下のshort_descriptionとlong_descriptionの文字列をそのまま返します。
スキップ理由
SKIPPED_NFC_VALIDATION警告にはadditional_data.skip_reasonが含まれます。これは、NFCが実行されなかった理由を正確に示す7つの安定したコードのいずれかです(スキップ理由が導入される前に記録されたセッションでは、additional_dataがnullの場合があります。過去の判定を処理する際は、このフィールドを省略可能なものとして扱ってください)。同じ分類は、判定ペイロードのセッションレベルのnfc_skip_reasonとしても表示されます。これには、そもそもNFC認証を実行できなかったため(チップのない書類、Web連携)、NFCレポートも警告も存在しないセッションも含まれます。
NFCレポートとその
SKIPPED_NFC_VALIDATION警告は、クライアントがNFCステップに到達し、明示的にスキップした場合にのみ存在します(通常はUSER_SKIPPED、またはスキャン時にリーダーが利用できないと判明した場合はDEVICE_WITHOUT_NFC)。NFCステップが提示される前に回避された場合(チップのない書類、証明書の欠如、NFC機能を利用できないとの報告、MRZからアクセスキーを導出できないこと、JPKIの利用不可)は、レポートも警告も作成されません。理由はセッションレベルのnfc_skip_reasonフィールドにのみ表示され、セッションステータスには影響しません。設定
3つのワークフロー設定で、NFC警告の振り分け方法を制御します。それぞれNo action、Review、Declineのいずれかに設定できます。- Skip NFC action(
skip_nfc_action):SKIPPED_NFC_VALIDATIONに適用されます。ユーザーがスキップできるのは、allow_nfc_skipが有効な場合のみです。 - Unverified chip action(
unverified_chip_action):NFC_CHIP_NOT_VERIFIEDとNFC_TRUST_ANCHOR_MISSINGの両方に適用されます。そのため、セッションステータスの挙動は同じままで、リスクコードによって検証が失敗した理由がわかります。 - Data inconsistency action(
inconsistent_data_action):NFC_AND_OCR_DATA_NOT_SAMEに適用されます。これは本人確認で使用されるデータ不一致の設定と同じものです。
DSC_CERTIFICATE_*リスクにはアクション設定がなく、常に情報提供のみとなります。日本のマイナンバーカードのリスクには、次のセクションに記載する5つの追加設定があります。
日本のマイナンバーカード (JPKI)
日本のマイナンバーカードはICAO 9303ではなくJPKIを通じて読み取られる(chip_protocol: "jpki")ため、上記のICAOのリスクが発生することはありません。代わりに、その読み取りでは次の5つのリスクが発生し、それぞれNFCノードに専用の設定があります。
マイナンバーカードの読み取りがスキップされた場合は、他のチップと同様に
SKIPPED_NFC_VALIDATIONが発生し、skip_nfc_actionに従います。読み取りの仕組みについては、日本のマイナンバーカード (JPKI)を参照してください。
例
レビュー中: チップを検証できなかった場合
NFC_CHIP_NOT_VERIFIEDはlog_type: "warning"となり、NFCレポートのステータスはIn Reviewになります。期限切れDSCのエントリーは情報提供のみを目的としたものです。
却下: チップとOCRの不一致
log_type: "error"となり、NFCレポートのステータスはDeclinedになります。ocr_mrzはMRZの各行を要素とする配列であるのに対し、nfc_mrzはチップから読み取ったMRZを連結した単一の文字列である点に注意してください。
レビュー中: 失効確認の応答がないマイナンバーカード
jpki_revocation_unchecked_actionがデフォルトの「レビュー」のままであるため、警告はlog_type: "warning"となり、NFCレポートのステータスはIn Reviewになります。カード自体の真正性は証明されており、jpki.chain_validとjpki.signature_validはいずれもtrueです。
警告の種類
各リスクには、アプリケーションの設定に基づいて重大度が割り当てられます。重大度は次の3つです。関連情報
- NFCレポート:レポートの完全なスキーマとステータス。
- Webhook:
status.updatedはセッションのステータスが変わるたびに送信されます。セッションが承認済み、却下、レビュー中、放棄のいずれかになると、判定ペイロード(NFCの警告を含む)が添付されます。 - データモデル: NFC認証:フィールドごとの正式なスキーマ。
- データモデル: Warningオブジェクト:
warnings[]の各エントリーの構造。