> ## 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.

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

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

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

## アプリケーションを準備する

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

ホスト型ログインにはシステムの認証セッションを使用します。ネイティブのパスキー処理とRelying Partyのドメインはあわせて計画してください。WebViewはシステムの認証フローの代わりにはなりません。

## ホスト型フローを実装する

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

コールバック時には、1回限り有効なコードを`token/`で交換する前に、state、トランザクションの有効期間、コールバックの宛先を検証します。元のverifierと完全一致のリダイレクトURIを使用してください。ブラウザをキャンセルまたは閉じても、ログイン成功とは見なされません。

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

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

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

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

## 本人確認とモニタリングを連携させる

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

本人確認が必要な場合は[iOS本人確認SDK](https://docs.didit.me/ja/integration/native-sdks/ios-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.