> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Android認証クイックスタート

> DiditのAndroid認証を導入する手順。ホスト型ログイン、コールバックの検証、安全なセッション管理に加え、検証とモニタリングへのリンクも紹介します。

> [!WARNING]
>
> Authenticationは新しい機能です。**DiditAuth for Android**はリリースによって異なります。配布情報、バージョン、呼び出し可能なシグネチャはここでは確定していません。推測したパッケージをインストールしたり、本人確認SDKをAuthentication SDKとして使用したりしないでください。

## アプリケーションの準備

1. DiditアプリケーションでAuthenticationが有効になっていることを確認し、コンソールからサインインオリジン(`https://<slug>.auth.didit.me`、サンドボックスの場合は`<slug>.sandbox.auth.didit.me`)をコピーします。
2. アプリケーションとランタイムがサポートする正確なコールバックURLを登録します。App Linksの所有権を検証してください。任意のカスタムURLスキームが受け付けられると想定しないでください。
3. サンドボックスと本番環境の設定は、コールバック処理や保存された認証情報も含めて分けて管理します。
4. 本人確認やモニタリングを連携する前に、安定した個人のマッピング方法を決めておきます。

ホスト型ログインにはシステムブラウザのタブを使用し、戻ってきたApp Linkを検証します。ネイティブのパスキーには、設定済みのリライングパーティドメインとプラットフォームの認証情報フローが必要です。

## ホスト型フローの実装

`{origin}/sign-in`のURLでシステムブラウザのタブを開きます。新しいランダムな`state`、S256のPKCEチャレンジ、登録済みの`redirect_uri`を指定します。ベリファイアはその試行の間だけアプリ内に保持してください。基盤となるプロトコルは[JavaScriptクイックスタート](https://docs.didit.me/ja/authentication/quickstarts/javascript.md)で説明しています。ネイティブコードでは、ブラウザのグローバルオブジェクトではなく、プラットフォームの暗号機能とURL処理を使用してください。

コールバック時には、1回限り有効なコードを`token/`で交換する前に、state、トランザクションの有効期間、コールバック先を検証します。元のベリファイアと正確なリダイレクトURIを使用してください。ブラウザのキャンセルや閉じる操作は、ログイン成功ではありません。

リフレッシュトークンはプラットフォームで保護された暗号化ストレージに保存してください。プレーンなプリファレンスファイル、アナリティクス、クラッシュログには決して保存しないでください。現在のセッションは、エンドユーザーのBearerトークンを使った`GET session/`で検証します。リフレッシュ処理を直列化し、両方のトークンをまとめて置き換え、サインアウト後はユーザー固有の状態を消去してください。リクエストの仕様とリフレッシュトークン再利用時の動作については、[トークンとJWKS](https://docs.didit.me/ja/authentication/tokens-and-jwks.md)を参照してください。

## ネイティブSDKのリリースプレビュー

ネイティブのAuthenticationモジュールでは、サインイン、現在のセッションへのアクセス、トークンの取得、サインアウト、ステップアップを、デバイスシグナルの自動収集とともに提供する予定です。ネイティブのパスキーと保護されたトークンストレージもこのリリースに含まれます。ラッパーAPIは公開済みのプラットフォーム仕様に従います。設計例から推測したコンストラクタ引数やメソッドシグネチャをコピーしないでください。

モジュールがリリースされるまでは、そのアダプターを無効にしておくか、有効化済みのアプリケーション向けにレビュー済みのホスト型プロトコル実装を使用してください。パッケージのインストールだけを根拠に、動作するネイティブAuthenticationクイックスタートとして案内しないでください。

## 本人確認とモニタリングの連携

バックエンドは、認証された個人から`vendor_data`を導出します。そしてその個人のために本人確認セッションを作成するか、スコープ付きのモニタリングトークンを発行します。アプリに返すのはセッションの認証情報またはスコープ付きトークンだけです。APIキーはサーバー上に保持します。

本人確認が必要な場合は、[Android本人確認SDK](https://docs.didit.me/ja/integration/native-sdks/android-sdk.md)を使用してください。お使いのプラットフォームでのモニタリング対応については、[SDKによる取引の送信](https://docs.didit.me/ja/transaction-monitoring/sdk-transaction-submission.md)に従ってください。サインイン、本人確認、取引の判定はそれぞれ別に扱ってください。

## 連携の検証

コールドスタート状態のアプリへの復帰、バックグラウンドとフォアグラウンドの切り替え、ブラウザでのキャンセル、コールバックの不一致、コードのリプレイ、トークンの有効期限切れ、同時リフレッシュ、MFA、ログアウト、別のユーザーとしてのサインインをテストしてください。そのリリースが利用可能になったら、対応デバイスでパスキーの登録とサインインをテストしてください。デバイス専用のチェックは、対象プラットフォームで実行されるまで未検証のままです。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.