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

# iOS での認証方法の管理

> Auth0 My Account API を使用して、ユーザーが MFA 認証要素、パスキー、リカバリーコードを登録、確認、削除できる全画面 UI を iOS でレンダリングします。

export const ReleaseStageNotice = ({feature, stage, plans, contact, terms}) => {
  const stageTextMap = {
    "beta": "Beta",
    "ea": "早期アクセス"
  };
  const stageText = stageTextMap[stage] || "製品リリース段階";
  const prsLink = "/docs/troubleshoot/product-lifecycle/product-release-stages";
  const linkify = (text, url) => {
    return <a href={url} target="_blank" rel="noreferrer" class="link">{text}</a>;
  };
  const includeDetails = (plans, contact, terms) => {
    const hasDetails = terms || plans || contact;
    if (!hasDetails) return null;
    return <span data-as="p">
            {plans && <>この機能は{linkify(`${plans}プラン`, "https://auth0.com/pricing")}でご利用いただけます。 </>}
            {contact && "参加をご希望の場合は、" + contact + "までお問い合わせください。 "}
            {terms && <>この機能を使用することにより、Oktaの該当する無料トライアル規約および{linkify("Master Subscription Agreement", "https://www.okta.com/legal")}に同意したものとみなされます。</>}
        </span>;
  };
  return <Warning>
            <span data-as="p">
                <strong>{feature}機能は現在、{linkify(stageText, prsLink)}です。</strong>
            </span>

            {includeDetails(plans, contact, terms)}
        </Warning>;
};

<ReleaseStageNotice feature="Auth0 Universal Components" stage="beta" terms="true" contact="Auth0 Support" />

iOS SDK 用の Universal Components には、[My Account API](/docs/ja-jp/manage-users/my-account-api) を使用して、登録、検証、一覧表示、削除に関するすべてのフローを処理する SwiftUI ビュー、`MyAccountAuthMethodsView` コンポーネントが含まれています。

My Account API の[認証方法管理](/docs/ja-jp/manage-users/my-account-api#manage-authentication-methods)機能を利用して、ユーザーの認証方法を管理するための包括的な UI をレンダリングします。

`MyAccountAuthMethodsView` コンポーネントを使用すれば、ナビゲーションの制御、エンドポイントの呼び出し、state の管理を行う必要はありません。

<Frame>
  <img src="https://mintcdn.com/translations/lC_NOnQ2Wbrs3KdZ/docs/images/universal-components/my-account/ios/my-account-auth-methods-view.png?fit=max&auto=format&n=lC_NOnQ2Wbrs3KdZ&q=85&s=dc99cb358380c8dc8838a68941ee5969" alt="サインイン方法と検証方法を表示する MyAccountAuthMethodsView コンポーネント" style={{maxWidth: "300px", display: "block", margin: "0 auto"}} width="568" height="919" data-path="docs/images/universal-components/my-account/ios/my-account-auth-methods-view.png" />
</Frame>

<div id="setup-requirements">
  ## 設定要件
</div>

`MyAccountAuthMethodsView` コンポーネントをレンダリングする前に、[セルフサービスのアカウントセキュリティインターフェースを構築する](/docs/ja-jp/get-started/universal-components/ios/components/my-account-overview)に従って SDK をインストールし、Auth0 テナントを設定して、トークンプロバイダーで SDK を初期化してください。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  `MyAccountAuthMethodsView` コンポーネントは、初期化された SDK から設定、トークンプロバイダー、パスキー設定を取得します。
</Callout>

<div id="supported-factors">
  ## サポート対象の認証要素
</div>

このコンポーネントは、My Account API で設定されているすべての認証方法を処理します。各認証要素の画面には、コンポーネントで有効なテーマが適用されます。詳細については、[スタイルとテーマのカスタマイズ](/docs/ja-jp/get-started/universal-components/ios/ios-theming)を参照してください。

| **認証要素**                                                                                      | **コンポーネントがレンダリングする内容**                                                                                       | **SDK に関する注意事項**                                                                                                        |
| --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| [Email OTP](/docs/ja-jp/secure/multi-factor-authentication/configure-mfa-email)               | メールアドレスの入力 → 6 桁の OTP 検証                                                                                     | プラットフォームの OTP 自動入力機能 (iOS QuickType) により、OTP フィールドに自動入力されます。                                                            |
| [SMS OTP](/docs/ja-jp/secure/multi-factor-authentication/configure-sms-notifications-for-mfa) | 国番号の選択 + 電話番号の入力 → 6 桁の OTP 検証                                                                               | システムキーボードによる自動入力は通常どおり利用できます。                                                                                           |
| [TOTP (認証器アプリ) ](/docs/ja-jp/secure/multi-factor-authentication/configure-otp)                | 手動入力用キー付きの QR コード → 6 桁の OTP 検証                                                                              | 標準の `otpauth://` payload をレンダリングします。QR コードにカスタムブランドロゴを埋め込むことはできません。                                                     |
| [プッシュ通知](/docs/ja-jp/secure/multi-factor-authentication/enable-push-notifications-for-mfa)    | [Auth0 Guardian](/docs/ja-jp/secure/multi-factor-authentication/auth0-guardian) でスキャンするための QR コード → 「承認待ち」状態 | エンドユーザーには公開版の Auth0 Guardian アプリが必要です。ブランド化した Guardian SDK ビルドを使用する Enterprise のお客様は、コンポーネント外で独自のインストールリンクを表示する必要があります。 |
| [パスキー](/docs/ja-jp/get-started/universal-components/ios/components/factors/passkeys)          | 説明画面 → OS の生体認証プロンプト → リスト内の登録済みエントリ                                                                         | Apple Associated Domains (`iOS 16.6+`) が必要です。プラットフォームの設定については、専用ページを参照してください。                                           |
| [リカバリーコード](/docs/ja-jp/secure/multi-factor-authentication/configure-recovery-codes-for-mfa)   | コピー操作と「コードを保存しました」の確認を備えた、一度だけ表示されるコードのリスト                                                                   | コードはユーザーに表示されるだけで、呼び出し元に返されることはありません。クリップボードへのコピーには、プラットフォーム標準のクリップボード API を使用します。                                      |

<div id="get-started">
  ## はじめに
</div>

通常は設定画面へのナビゲーションリンクの配下に、`MyAccountAuthMethodsView` コンポーネントをSwiftUIの階層内の任意の場所に追加します。

```swift SettingsView.swift wrap lines theme={null}
import SwiftUI
import Auth0UniversalComponents

struct SettingsView: View {
    var body: some View {
        NavigationStack {
            List {
                NavigationLink(destination: MyAccountAuthMethodsView()) {
                    Label("Authentication Methods", systemImage: "lock.shield")
                }
            }
            .navigationTitle("Account Settings")
        }
    }
}
```

Swift view はイニシャライザのパラメータを受け取りません。動作をカスタマイズするには、SwiftUI の view 修飾子と環境値を使用します。

<div id="parameters">
  ## パラメータ
</div>

`MyAccountAuthMethodsView` コンポーネントでは、次のモディファイア値と環境値を使用できます。

| **モディファイア / 環境値**              | **型**                     | **目的**                                                                                                                                       |
| ------------------------------ | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `.auth0Theme(_:)`              | `Auth0Theme`              | デザイントークン (色、タイポグラフィ、間隔、角丸、サイズ) をオーバーライドします。詳細については、[スタイルとテーマのカスタマイズ](/docs/ja-jp/get-started/universal-components/ios/ios-theming)を参照してください。 |
| `.embeddedInNavigationStack()` | —                         | ビューがホスト `NavigationStack` に埋め込まれていることを指定し、SDK が独自のスタックを作成する代わりに、ホストのスタックにプッシュするようにします。                                                       |
| `\.hostNavigationPath`         | `Binding<NavigationPath>` | SDK がホストナビゲーションスタックにデスティネーションをプッシュする際に使用する環境バインディングです。`.embeddedInNavigationStack()` を呼び出す場合は必須です。                                           |

<div id="customize">
  ## カスタマイズ
</div>

テーマはコンポーネント全体に適用され、各認証要素画面には現在のテーマが継承されます。

トークンの全カタログとダークモードのパターンについては、[スタイルとテーマのカスタマイズ](/docs/ja-jp/get-started/universal-components/ios/ios-theming)を参照してください。

<div id="embed-in-a-host-navigationstack">
  ## ホスト側のNavigationStackに埋め込む
</div>

デフォルトでは、`MyAccountAuthMethodsView`コンポーネントが独自の`NavigationStack`を管理します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  アプリケーションですでにナビゲーションスタックを使用している場合、2つ目のスタックをネストすると、戻るボタンやスワイプで戻るジェスチャーが正しく機能しなくなります。代わりに、`MyAccountAuthMethodsView`コンポーネントを既存のスタックに埋め込んでください。
</Callout>

```swift wrap lines theme={null}
NavigationStack(path: $path) {
    List {
        NavigationLink("Authentication methods", value: "auth-methods")
    }
    .navigationDestination(for: String.self) { value in
        if value == "auth-methods" {
            MyAccountAuthMethodsView()
                .embeddedInNavigationStack()
        }
    }
}
.environment(\.hostNavigationPath, $path)
```

埋め込みモードを使用するには、次の2つの要件を満たす必要があります。

* `MyAccountAuthMethodsView` コンポーネントに `.embeddedInNavigationStack()` 修飾子を追加し、内部スタックが作成されないようにします。

* 外側の `NavigationStack` に `\.hostNavigationPath` 修飾子を追加し、SDK がどのパスバインディングにプッシュするかを認識できるようにします。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  SDK では、独自のルートに対して型安全なナビゲーションコントローラーが必要なアプリケーション向けに、`Router` ヘルパークラスも提供しています。

  SDK 内部のナビゲーションを制御するために使用する必要はありません。アプリケーションの画面にも同じパターンを適用したい場合にのみ使用してください。
</Callout>

<div id="localization">
  ## ローカライゼーション
</div>

iOS 向け Universal Components には、ローカライズされた文字列は含まれていません。ユーザー向けの文言は英語です。

ローカライゼーションが連携の障壁となる場合は、[ui-components-ios](https://github.com/auth0/ui-components-ios/issues) リポジトリで機能リクエストを送信してください。

<div id="limitations">
  ## 制限事項
</div>

* **iOS では認証要素を単独で扱うコンポーネントは提供されません**。すべての認証要素は 認証方法の管理 コンポーネント内にレンダリングされます。アプリケーション内の別の場所で、単一の認証要素を登録、検証、削除するためのパブリック API はありません。
* **単独で使用できる一覧表示／削除コンポーネントはありません**。SDK には、登録済みの認証要素を一覧表示したり、コンポーネント外で削除したりするためのパブリックコンポーネントは用意されていません。管理機能をすべて利用するには、認証方法の管理 コンポーネントを使用してください。

<div id="learn-more">
  ## 詳細
</div>

<CardGroup cols={2}>
  <Card title="セルフサービスのアカウントセキュリティインターフェースを構築する" icon="key" href="/docs/ja-jp/get-started/universal-components/ios/components/my-account-overview">
    SDK を初期化し、トークンプロバイダーを Auth0 テナントに接続します。
  </Card>

  <Card title="スタイルとテーマをカスタマイズする" icon="palette" href="/docs/ja-jp/get-started/universal-components/ios/ios-theming">
    Auth0 のデザイントークンシステムを使用して、色、タイポグラフィ、間隔、角丸、サイズのトークンをオーバーライドします。
  </Card>
</CardGroup>
