0

我正在尝试在 Web 应用程序中使用 Okta API 来允许用户激活/停用其帐户上的 SMS MFA 因素。但是,我遇到了如下详述的问题:

首先,在新创建的帐户上:

  1. SMS 因子通过Enroll Okta SMS Factor API 方法注册。
  2. 该因子随后通过激活SMS 因子API 方法激活。
  3. 然后我们使用Reset Factor API 方法停用该因子。

所有这些都可以正常工作并且没有错误,但是,现在当再次尝试注册 SMS 因子时:

  • 如果使用相同的电话号码:不会发送安全码,并且无需验证即可启用 SMS 双重身份验证(这没关系,但出乎意料)
  • 如果使用不同的电话号码: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

此端点的更新方法没有记录,但可以执行。

如果您之前删除了短信并且不知道之前注册的电话号码,我知道如何恢复该过程。

在这种情况下,如果您要更改数字,请执行以下操作。

  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

如果用户想要使用不同的电话号码(而不是现有电话号码),则注册 API 调用需要将 updatePhone 查询参数设置为 true。

无法为已激活的 SMS 因素更新电话号码。如果您想更新电话号码,则需要重置因子并重新注册:

列出已注册的因子并提取相关的因子 ID。重置因子 然后再次注册因子。只要 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 回答
0

我有同样的要求,我尝试了以下过程:

GET FACTORS1.使用--Extract the FactorID从用户那里获取Factors列表。

2.使用删除现有短信 FACTOR DELETE FACTOR- 必须在 URL 中提及 FactorId

3.然后使用{{url}}/api/v1/authn/factors?updatePhone=true

这个过程帮助我删除了激活的 SMS 因素并将 SMS 注册为具有更新手机号码的 MFA。

希望这可以帮助。

于 2019-11-21T12:53:57.907 回答