ここに記載のバージョンは、本人確認SDKのものです。ネイティブの認証モジュールとラッパーは別のリリースです。認証のクイックスタートを参照してください。
推奨される方法: 最高のユーザー体験を実現するには、WebView連携ではなくネイティブSDKを使用してください。ネイティブSDKは、カメラ権限、NFC読み取り、ライブネス検知の複雑な処理をすべて標準で処理します。
SDKの提供状況
生体認証の同意には、ネイティブ4.10.0以降が必要です。 イリノイ州、テキサス州、コロラド州の法律の対象となる人に対して、Diditは最初の顔撮影の前に明示的な生体認証の同意を求めることができます。ホスト型フロー(Web SDK、WebView、ブラウザ)と、ネイティブのiOSおよびAndroid SDK 4.10.0以降ではこのステップが表示されます。React NativeとFlutterでは、ネイティブ4.10.0以降に固定したリリースで表示されます。4.10.0未満のネイティブSDK、またはバージョンを報告しないSDKでは表示できません。そのセッションは従来どおりに実行され、判定結果は
biometric_consent.status: "pending"とreason: "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"を報告します。これらの州の利用者を検証する場合は、アップグレードしてください。4.9.1の新機能
iOSとAndroidで、書類と住所証明の国ピッカーが、画面表示後にIPアドレスの検索が完了した場合でも、ユーザーのIPアドレスから検出した国で開くようになりました。 セッションで設定された国や、ユーザーが選択した国が上書きされることはありません。 Androidでは、アンケートのセクションヘッダーとフィールドがSDKの言語で表示され、フルバリアントでのNFCパスポートスキャンがクラッシュしなくなりました。 ロシア語とキルギス語の検証用テキストが、両プラットフォームで改善されました。4.9.0の新機能
すべてのネイティブSDKとクロスプラットフォームのモバイルSDKに、検証のウェルカム画面でオプトイン方式の言語セレクターが追加されました。showLanguageSelectorをtrueに設定すると、Web検証フローと同じ、コンパクトで検索可能なセレクターが表示されます。
セレクターは既定で非表示のため、既存の連携は、有効にするまで現在の動作のままです。
検証セッションの流れ
すべてのネイティブSDKは、同じDiditの検証セッションを使用します。流れは次のとおりです。- 御社のバックエンドが、
workflow_idと任意のコンテキスト(vendor_data、contact_details、expected_details、metadata、callback)を指定してPOST /v3/session/を呼び出します。 - Diditが、
session_id、有効期間の短いsession_token、ホスト型のurlを返します。 - 御社のモバイルアプリが、バックエンドから
session_tokenを受け取り、SDKに渡します(startVerification(token: …))。 - ネイティブSDKが検証UIを開き、ユーザーがステップを完了すると、SDKがセッションの最終
status(Approved、Declined、In Reviewなど)を含む結果を返します。 - 御社のバックエンドが、Webhook(
webhook_type: "status.updated")で完全な判定結果を受け取り、保存します。
SDKの結果から分かるのは、ワークフローの結果(ステータス)です。書類のフィールド、顔照合のスコア、AMLのヒット、NFCデータ、警告を含む完全な判定結果は、Webhookで御社のサーバーに配信され、セッション判定結果の取得エンドポイントからも取得できます。認可の判断を、クライアント側の結果だけに頼って行わないでください。
iOS SDK
使いどころ: iOS 13+を対象とする、ネイティブのSwift / SwiftUI / UIKitアプリ。 最小限の設定で使える、軽量でサーバー駆動のiOS用本人確認SDKです。GitHubリポジトリ
GitHubでソースコードとサンプルを見る
- SwiftUIとUIKitに対応
- NFCによるパスポート/ID読み取り(iOS 15+。NFCなしの
CoreとAutoDetectionバリアントはNFCとOpenSSLを除外し、iOS 13+にデプロイ可能) - 53言語に対応
- UIテーマのカスタマイズが可能
- セッショントークンまたはワークフローIDで連携
Android SDK
使いどころ: Android 6.0(API 23)以降を対象とする、ネイティブのKotlin / Jetpack Compose / Javaアプリ。 最小限の設定で使える、軽量でサーバー駆動のAndroid用本人確認SDKです。GitHubリポジトリ
GitHubでソースコードとサンプルを見る
- KotlinとJetpack Composeに対応
- NFCによるパスポート/ID読み取り(オプトインの
me.didit:didit-sdk-coreアーティファクトはNFCの依存関係を除外) - API 24+でMLベースの書類・顔の自動検出(API 23では手動撮影に自然にフォールバック)
- 53言語に対応
- UIテーマのカスタマイズが可能
- セッショントークンまたはワークフローIDで連携
React Native SDK
使いどころ: iOSとAndroidで単一のTypeScript APIを使いたい、クロスプラットフォームのReact NativeまたはExpoアプリ(RN 0.76+、New Architecture)。 ネイティブのiOS SDKとAndroid SDKをラップし、統一されたTypeScript APIを提供する、クロスプラットフォームのReact Native SDKです。GitHubリポジトリ
GitHubでソースコードとサンプルを見る
- iOSとAndroidで単一のTypeScript API
- ゼロ設定のconfig pluginでExpoに対応(開発ビルドが必要。Expo Goは不可)
- React Native CLIに対応
- NFCによるパスポート/ID読み取り(
DIDIT_SDK_IOS_NFC_ENABLED=false/diditSdkAndroidNfcEnabled=falseでオフに切り替え) - 53言語に対応(ネイティブSDKから継承)
- セッショントークンまたはワークフローIDで連携
Flutter SDK
使いどころ: iOSとAndroidで単一のDart APIを使いたい、クロスプラットフォームのFlutterアプリ(Flutter 3.3+、Dart 3.11+)。 ネイティブのiOS SDKとAndroid SDKをラップし、統一されたDart APIを提供する、クロスプラットフォームのFlutter SDKです。pub.devパッケージ
pub.devでパッケージを見る
- iOSとAndroidで単一のDart API
- ネイティブSDKとのプラットフォームチャネル連携
- NFCによるパスポート/ID読み取り(
DIDIT_SDK_IOS_NFC_ENABLED=false/diditSdkAndroidNfcEnabled=falseでオフに切り替え) - 53言語に対応(ネイティブSDKから継承)
- セッショントークンまたはワークフローIDで連携
Web SDK (JavaScript)
使いどころ: ブラウザベースのアプリとWebフレームワーク(React、Vue、Angular、Next.js、Nuxt、Svelte、素のJS)。Web SDKは、モーダルまたはインラインのiframeでホスト型の検証フローを開きます。モバイルアプリには、上記のネイティブSDKをおすすめします。 React、Vue、Angular、Next.js、Nuxt、Svelte、素のJSに対応した、Webアプリケーション向けのJavaScript SDKです。NPMパッケージ
npmでパッケージを見る
- プログラムによるセッション管理とイベントコールバック
- React、Vue、Angular、Next.js、Nuxt、Svelte、素のJSに対応
- TypeScriptに完全対応
- モーダルとインライン(埋め込み)のモード
- カスタムUI向けの状態管理