メインコンテンツへスキップ
iframeを使って、Diditの認証フローをアプリケーション内に直接埋め込めます。ユーザーをサイトの外へリダイレクトすることなく、シームレスな体験を提供できます。

概要


最も手軽に始められる方法です。UniLink URLをコピーして貼り付けるだけです。

必要なもの

  1. Didit のワークフロー (Didit Consoleで作成)
  2. UniLink URL (ワークフローのCopy Linkをクリック)

実装

⚠️ 必須: ライブネス検知中にカメラへアクセスするため、allow属性は必須です。

主なメリット

  • 1分未満でセットアップ: バックエンドもAPIキーも不要
  • 設定不要: コールバックURLはワークフローの設定で指定
  • MVPに最適: すぐに始められます

API Session iframe (バックエンドあり)

セッションごとのカスタマイズが必要な高度な連携向けです。

使用する場面

  • セッションごとにカスタムのvendor_dataやmetadataを渡す
  • セッションごとに異なるコールバックURLを設定する
  • 認証開始前にサーバー側でセッションを追跡する
  • セッションを自社のユーザーIDと関連付ける

実装

ステップ1: セッションを作成する (バックエンド) セッション作成のレスポンスにはurlというフィールドが含まれます。これをiframeのsrcとして使用してください。
ステップ2: iframeに埋め込む (フロントエンド)

イベントの受信 (postMessage)

検証ページは親ウィンドウにイベントを送信します。すべてのメッセージは次の形式です。
ペイロードはネストされています。event.data.sessionIdではなく、event.data.data.sessionIdを読み取ってください。
主なイベント: didit:ready ({ sessionId })、didit:started、didit:step_started / didit:step_completed / didit:step_changed ({ step, ... })、didit:status_updated ({ status })、didit:completed ({ sessionId, status })、didit:cancelled、didit:error ({ error, step? })、didit:close_request、didit:layout ({ contentHeight, colorScheme, dir }、後述を参照)。型付きコールバックとして利用できる認証イベントは、JavaScript SDKイベントリファレンスに記載されています。バージョン0.5.0以降、SDKはレイアウトメッセージをonEventに転送せず、内部で処理します。

didit:layoutでiframeのサイズを調整する

検証ページは、必要な領域の大きさをdidit:layoutメッセージで通知します。このメッセージは読み込み時に1回送信され、その後もコンテンツの高さ、テーマ、テキストの方向が変わるたびに送信されます。
独自のiframeでdidit:layoutを受信するには、その認証URLにsdk_presentation=embeddedを追加してください。バージョン0.5.0以降は、JavaScript SDKがpresentationを自動で設定します。presentationパラメーターがない場合、ページはスタンドアロンのレイアウトを使用し、レイアウトメッセージを送信しません。
このホストページは推奨サイズに従っています。幅1024px以上では固定サイズのカード、540px以下では全画面、その中間では幅500pxでページが通知する高さを使うiframeになります。
541pxから1023pxの間では、この例はレイアウトメッセージを受け取るまで700pxの初期高さを使用し、表示中のウィンドウの高さの90%を上限とします。PC向けとスマートフォン向けのサイズ設定はすぐに適用されます。スマートフォンではiframeがウィンドウ全体を覆うため、ホスト側で認証を終了する手段を用意してください。iframeの周囲に配置するコントロールは、colorSchemeとdirを使ってページのテーマとテキスト方向に合わせてください。 ユーザーの接続が切れると、ページには「No internet connection」画面が表示され、接続が回復すると自動的に閉じます。ユーザーがこの画面でExit Verificationを選択すると、ページはerror: "network_error"を含むdidit:errorを送信し、続いてdidit:cancelledを送信します。didit:cancelledを受け取ったらiframeを閉じてください。

モーダルの実装

ページに重ねて表示する洗練されたモーダルを実装するには:

HTML/CSS/JS


Reactコンポーネント

モーダル形式の認証に使える再利用可能なReactコンポーネント:

使い方


Vueコンポーネント


設定

必要な権限

撮影、位置情報、コピー、メディアの互換性に対応するため、次の権限リストをすべて指定してください。
allow属性は権限を委譲するものです。ユーザーの選択や、ホストページに設定されたより厳しいPermissions-Policyヘッダーを上書きすることはありません。

iframeのサイズ

認証フローは、iframeのサイズに合わせてレイアウトを調整します。iframeは、表示するウィンドウに合わせたサイズにしてください。 中間の範囲では、最初のdidit:layoutメッセージを受信するまで500px×700pxで表示し、高さの上限は同じにしてください。didit:layoutの例では、メッセージ受信前のコンピューターとスマートフォンのサイズも含め、3つのサイズすべてを適用しています。

コンテンツセキュリティポリシー (CSP)

CSPを使用している場合は、frame-srcディレクティブにDiditを追加してください。

クロスデバイス認証

InContext iframeは、クロスデバイス認証に自動で対応しています。
  1. ユーザーがデスクトップで認証を開始します
  2. カメラを使用できない場合、QRコードが表示されます
  3. ユーザーがモバイル端末でQRコードをスキャンします
  4. ユーザーがモバイル端末で認証を完了します
  5. デスクトップのiframeが結果を受けて自動的に更新されます
これは自動的に行われるため、追加の設定は不要です。

トラブルシューティング

カメラが動作しない

  1. iframeに権限リストがすべて含まれていることを確認します
  2. サイトがHTTPSで配信されていることを確認します
  3. ユーザーがお使いのドメインにカメラの権限を許可していることを確認します
  4. iframeでのカメラへのアクセスが失敗する場合は、リダイレクト方式をお試しください

iframeが読み込まれない

  1. コンテンツセキュリティポリシー(CSP)に問題がないか確認します
  2. frame-srcディレクティブにhttps://verify.didit.meを追加します
  3. ブラウザのコンソールにエラーが出ていないか確認します

postMessageを受信できない

  1. 正しいオリジン(https://verify.didit.me、またはホワイトラベルのドメイン)からのメッセージをリッスンしていることを確認します
  2. iframeを開く前にイベントリスナーが追加されていることを確認します
  3. イベント名と形式を確認します。タイプにはプレフィックスが付いており(verification_completeではなくdidit:completed)、ペイロードはevent.data.dataの下にネストされています

サンプルリポジトリ

GitHubリポジトリ

GitHubでソースコードとサンプルを確認できます

最終更新日 2026年11月1日