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

# ユーザーのMFA認証システム登録のインポート

> 既存のユーザーのMFA登録をインポートする方法について説明します。

[自動移行](/docs/ja-jp/manage-users/user-migration/configure-automatic-migration-from-your-database)と[一括ユーザーインポート](/docs/ja-jp/manage-users/user-migration/bulk-user-imports)を使用して、ユーザーの<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=multifactor-authentication" tip="多要素認証（MFA）: ユーザー名とパスワードに加えて、SMS経由のコードなどの要素を使用するユーザー認証プロセス。" cta="用語集の表示">MFA</Tooltip>登録をインポートできます。サポートされている登録タイプは次のとおりです。

* メール： メール検証用。
* 電話： SMS検証用。
* OTP： Google Authenticatorなどの認証システムアプリケーションで使用されるワンタイムパスワード（OTP）用。

MFA登録をインポートすると、移行後にユーザーが再登録する必要がなくなるため、シームレスなユーザーエクスペリエンスが実現します。

従来のログインエクスペリエンスでは、複数の要素を持つユーザーの要素選択はサポートされていません。複数の登録要素を持つユーザーをインポートする場合は、[ユニバーサルログイン](/docs/ja-jp/authenticate/login/auth0-universal-login)エクスペリエンスの使用を検討してください。

## スキーマ

スキーマは、次の両方のワークフローのMFA要素に適用されます。

```json lines theme={null}
{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "totp": {
                "type": "object",
                "properties": {
                "secret": {
                    "type": "string",
                        "pattern": "^[A-Z2-7]+$",
                        "description": "The OTP secret is used for MFA authentication with Google Authenticator type apps. It must be supplied in un-padded Base32 encoding, such as: JBTWY3DPEHPK3PNP"
                    },
                },
                "additionalProperties": false,
                "required": ["secret"],
            },
            "phone": {
                "type": "object",
                "properties": {
                "value": {
                    "type": "string",
                    "pattern": "^\\+[0-9]{1,15}$",
                    "description": "The phone number for SMS or Voice MFA. The phone number should include a country code and begin with +, such as: +12125550001"
                },
                },
                "additionalProperties": false,
                "required": ["value"],
            },
            "email": {
                "type": "object",
                "properties": {
                    "value": {
                        "type": "string",
                        "format": "email",
                        "description": "The email address for MFA"
                    },
                },
                "additionalProperties": false,
                "required": ["value"],
            },
        },
        "maxProperties": 1,
        "additionalProperties": false,
    },
    "minItems": 1,
    "maxItems": 10
}
```

## 自動移行

MFA登録は、[自動移行](/docs/ja-jp/connections/database/custom-db/overview-custom-db-connections#automatic-migration-scenario)中にインポートすることもできます。これは、カスタムDB[ログインスクリプト](/docs/ja-jp/authenticate/database-connections/custom-db/templates/login)の最後にコールバックに提供されるユーザーの`mfa_factors`フィールドに既存の登録を提供することで実現できます。

失敗はテナントログに失敗したログインとして表示され、次のような説明によって他の失敗と区別できます。`MFA要素をインポートできない`。例：

```json lines theme={null}
{
  "_id": "5e9df3b29ebabe00571c04a7",
  "date": "2020-04-20T19:10:42.916Z",
  "type": "fu",
  "description": "Unable to import MFA factors.",
  "connection": "Username-Password-Authentication",
  "connection_id": "con_mMkvaycgzgCS0p0z",
  "client_id": "aCbTAJNi5HbsjPJtRpSP6BIoLPOrSj2Cgg",
  "client_name": "All Applications",
  "ip": "10.12.13.1",
  "client_ip": null,
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
  "details": {
    "error": {
      "message": "Unable to import MFA factors."
    }
  },
  "user_name": "test@test.io",
  "strategy": "auth0",
  "strategy_type": "database"
}
```

## 一括ユーザーインポート

1. `users.json`ファイルを準備します。詳細については、「[一括ユーザーインポート](/docs/ja-jp/manage-users/user-migration/bulk-user-imports)」を参照してください。
2. 各ユーザーの既存のMFA登録を含めます。
3. 一括ユーザーインポートを開始します。
4. 最初の要求で`upsert`オプションを有効にして、既存のユーザーの要素を更新します。
5. インポートジョブが完了したら、応答にエラーがないか確認します。ユーザーのMFA要素のいずれかがインポートに失敗した場合は、次のようなエラーが表示されます。

`upsert`オプションを使用すると、既存のユーザーに対するMFAに関連しない更新がユーザーのプロファイルに適用されます。たとえば、次のエラーの概要は、ユーザーの`画像`属性が正常に`http://example.org/jdoe.png`に設定されたが、提供されたMFA要素をインポートできなかったことを示しています。このような場合、失敗したユーザーのインポートを再試行しても問題ありません。

```json lines theme={null}
[
  {
    "user": {
      "email": "antoinette@contoso.com",
      "picture": "http://example.org/jdoe.png",
      "mfa_factors": [
        {
          "totp": {
            "secret": "2PRXZWZAYYDAWCD"
          }
        },
        {
          "phone": {
            "value": "+15551112233"
          }
        },
        {
          "email": {
            "value": "antoinette@antoinette.biz"
          }
        }
      ]
    },
    "errors": [
      {
        "code": "MFA_FACTORS_FAILED",
        "message": "Unable to import factors"
      }
    ]
  }
]
```

## 復旧コード

Auth0では、復旧コードをインポートする方法は提供されていません。ユーザーのMFA要素がインポートされても、復旧コードは提供されません。

ユーザーに復旧コードを提供するには、ユーザーが復旧コードを登録しているかどうかを確認し、登録していない場合は[復旧コード再生成エンドポイント](/docs/ja-jp/api/management/v2#!/Users/post_recovery_code_regeneration)を使用して新しいコードを生成します。

## もっと詳しく

* [データベースからの自動移行を構成する](/docs/ja-jp/manage-users/user-migration/configure-automatic-migration-from-your-database)
* [一括ユーザーインポート](/docs/ja-jp/manage-users/user-migration/bulk-user-imports)
