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

自動移行一括ユーザーインポートを使用して、ユーザーのMFA登録をインポートできます。サポートされている登録タイプは次のとおりです。

  • メール: メール検証用。

  • 電話: SMS検証用。

  • OTP: Google Authenticatorなどの認証システムアプリケーションで使用されるワンタイムパスワード(OTP)用。

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

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

スキーマ

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

{
    "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
}

Was this helpful?

/

自動移行

MFA登録は、自動移行中にインポートすることもできます。これは、カスタムDBログインスクリプトの最後にコールバックに提供されるユーザーのmfa_factorsフィールドに既存の登録を提供することで実現できます。

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

{
  "_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"
}

Was this helpful?

/

一括ユーザーインポート

  1. users.jsonファイルを準備します。詳細については、「一括ユーザーインポート」を参照してください。

  2. 各ユーザーの既存のMFA登録を含めます。

  3. 一括ユーザーインポートを開始します。

  4. 最初の要求でupsertオプションを有効にして、既存のユーザーの要素を更新します。

  5. インポートジョブが完了したら、応答にエラーがないか確認します。ユーザーのMFA要素のいずれかがインポートに失敗した場合は、次のようなエラーが表示されます。

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

[
  {
    "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"
      }
    ]
  }
]

Was this helpful?

/

復旧コード

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

ユーザーに復旧コードを提供するには、ユーザーが復旧コードを登録しているかどうかを確認し、登録していない場合は復旧コード再生成エンドポイントを使用して新しいコードを生成します。

もっと詳しく