0

Web アプリケーションで Okta API を使用して、ユーザーが自分のアカウントで SMS MFA 要素をアクティブ化/非アクティブ化できるようにしようとしています。ただし、以下に詳述する問題に直面しています。

まず、新しく作成したアカウントで:

  1. SMS ファクターはEnroll Okta SMS Factor API メソッドを介して登録されます。
  2. その後、この要素は、Acivate SMS Factor API メソッドを介してアクティブ化されます。
  3. 次に、 Reset Factor API メソッドを使用して因子を無効にします。

これはすべて正常に動作し、エラーも発生しませんが、SMS 要素を再度登録しようとすると、次のようになります。

  • 同じ電話番号を使用している場合: セキュリティ コードは送信されず、確認を必要とせずに SMS 2 要素認証が有効になります (これは問題ありませんが、予期しないことです)。
  • 別の電話番号を使用している場合: Okta は次のエラー オブジェクトを返します。

    stdClass Object
    (
        [errorCode] => E0000001
        [errorSummary] => Api validation failed: factorEnrollRequest
        [errorLink] => E0000001
        [errorId] => oae3MBJJpGrR6Oj_MkGOxed_g
        [errorCauses] => Array
            (
                [0] => stdClass Object
                    (
                        [errorSummary] => There is an existing verified phone number.
                    )
            )
    )
    

この問題を解決するにはどうすればよいですか? 以前に確認した電話番号を削除する必要がある手順がありませんか? もしそうなら、どうすればいいですか?

4

3 に答える 3

1

このエンドポイントの更新方法は文書化されていませんが、実行できます。

以前にSMSを削除したことがあり、以前に登録した電話番号がわからない場合、プロセスを回復する方法がわかりません.

そのシナリオ以外で、番号を変更する場合は、次の手順を実行します。

  1. 要因の完全なリストを取得する
  2. 変更する SMS 要素を特定します (fid が必要です)
  3. 既存の SMS の要素 ID と新しい電話番号を使用する

    POST https://{yourorg}.com/api/v1/users/{:uid}/factors/{:fid}
    {
        "profile":
        {
            "phoneNumber": "+1 555 123 1234"
        }
    }
    
  4. 応答は、新しく登録されたSMS 要素の応答と同じになります。

  5. 既存の fid をリセット/削除する
  6. を使用して新しい因子を有効にします

前の要素がリセットされた状況に遭遇し、fid がわからないが、番号を登録できる番号はわかっている場合は、その fid を取得してから、上記のシーケンスを開始します。

于 2016-03-04T19:30:56.127 に答える
0

次のプロセスを試したのと同じ要件があります。

1. --FactorID の抽出を使用して、ユーザーから Factors リストをGET FACTORS取得します。

2. を使用して既存の SMS FACTOR をDELETE FACTOR削除します - FactorId を URL に記載する必要があります。

3.次に、{{url}}/api/v1/authn/factors?updatePhone=true

このプロセスは、アクティブ化された SMS 要素を削除し、更新された携帯電話番号で SMS を MFA として登録するのに役立ちました。

お役に立てれば。

于 2019-11-21T12:53:57.907 に答える
0

ユーザーが (既存の電話番号ではなく) 別の電話番号を使用する場合は、登録 API 呼び出しで updatePhone クエリ パラメータを true に設定する必要があります。

既にアクティブ化されている SMS 要素の電話番号を更新することはできません。電話番号を更新する場合は、要素をリセットして再登録する必要があります。

登録された因子を一覧表示し、関連する factorId を抽出します。因子をリセットしてから、因子を再度登録します。Factor のステータス値が PENDING_ACTIVATION である限り、updatePhone パラメータ セットを true に設定し、更新された phoneNumber 値を渡すことができます。

リクエスト例

curl -v -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: SSWS ${api_token}" \
-d '{
  "factorType": "sms",
  "provider": "OKTA",
  "profile": {
    "phoneNumber": "+1-555-415-1337"
  }
}' "https://${yourOktaDomain}/api/v1/users/${userId}/factors?updatePhone=true"
于 2021-08-01T02:45:58.117 に答える