2016-03-03 49 views
0

我試圖在Web應用程序中使用Okta API以允許用戶在其帳戶上激活/停用SMS MFA因素。不過,我遇到了一個問題,詳述如下:Okta API:SMS多因素問題

首先,在新創建的帳戶:

  1. 的短信因子通過Enroll Okta SMS Factor API方法錄取。
  2. 該因子隨後通過Acivate SMS Factor API 方法激活。
  3. 然後我們使用Reset Factor API 方法停用該因子。

所有這一切工作正常,並沒有出現錯誤,但是,嘗試註冊再次短信因素現在時:如果使用同一個電話號碼

  • :沒有安全代碼將被髮送和短信 2 - 因子身份驗證將無需驗證啓用(這 是好的,但意外)
  • 如果使用不同的電話號碼:1563返回以下錯誤對象:

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

如何解決此問題?我是否錯過了必須刪除以前驗證的電話號碼的步驟?如果是這樣,我該怎麼做?

回答

0

該端點的更新方法沒有記錄,但可以執行。

我做懂得,如果你有以前刪除的短信,做知道以前註冊的電話號碼恢復過程。

在這種情況之外,如果您要更改數字,請執行以下操作。

  1. 得到充分list of factors
  2. 識別SMS因子被改變(我們需要的FID)
  3. 使用現有的SMS的因素id和新的電話號碼

    POST https://{yourorg}.com/api/v1/users/{:uid}/factors/{:fid} 
    { 
        "profile": 
        { 
         "phoneNumber": "+1 555 123 1234" 
        } 
    } 
    
  4. 響應將與newly enrolled的響應相同SMS的因素

  5. reset/delete現有FID
  6. Activate使用

如果碰上其中先前的因素被重置的情況下,你不知道FID,但很清楚,你可以enroll數數,獲取新的因素該fid然後開始上述的序列。