使用簡訊區域保護應用程式,避免遭到濫用

本指南說明如何使用簡訊區域限制 Identity Platform 簡訊驗證用量,以及查看用量指標。

簡訊區域總覽

簡訊區域是 Identity Platform 的功能,可用於保護應用程式免於遭到簡訊濫用。

簡訊濫用行為通常是指惡意人士透過與其簽訂收益分潤協議的電信業者,導致服務傳送簡訊。濫用簡訊功能可能會導致成本提高,並損害產品在消費者心中的信譽。

由於 Identity Platform 允許使用簡訊電話授權,因此可能會發生濫用簡訊的情況。

您可以透過「簡訊區域」功能,設定哪些區域可以接收簡訊電話授權。

這項功能提供以下功能:

  • Firebase 控制台介面,可讓您設定簡訊區域政策。
  • 用於設定簡訊區域政策的 API。
  • 可協助您決定是否要使用簡訊區域政策的指標。

設定地區政策

本節說明 Identity Platform 的地區政策。您可以設定下列類型的政策,但只能啟用其中一個:

  • 僅限許可清單:只有您在許可清單中指定的區域才能接收電話授權要求。
  • 僅拒絕清單:除了您在拒絕清單中指定的電話號碼,所有地區都能接收電話授權要求。

變更設定後,系統會立即開始強制執行政策。系統會根據電話號碼的區碼,依政策封鎖來自禁止地區的電話授權要求。

僅限許可清單政策

如要設定僅允許清單政策,請按照下列步驟操作:

Firebase 控制台

  1. 前往 Firebase 控制台的「Firebase Auth Settings」頁面。

    前往 Firebase Auth 設定

    1. 在導覽窗格中選取「簡訊區域政策」

    2. 選取「允許」

    3. 按一下「選取區域」

  2. 請只新增要傳送簡訊的區域。不在清單中的區域會遭到封鎖。

  3. 按一下 [儲存]

    您可以設定許可清單或拒絕清單,但不能同時設定兩者。這麼做會覆寫先前的所有設定。

Identity Toolkit API

  1. 如要在 Google Cloud 主控台中列印專案的存取權權杖,請執行下列指令:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. 使用 Identity Toolkit API 更新專案設定,以便納入新的政策:

    curl -X PATCH -d "{'sms_region_config':{'allowlist_only':{'allowed_regions':['REGION_LIST']}}}" \
    -H 'Authorization: Bearer ACCESS_TOKEN' \
    -H 'Content-Type: application/json' \
    'https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=sms_region_config'
    

更改下列內容:

  • ACCESS_TOKEN:您先前產生的存取權杖。
  • REGION_LIST:一或多個區域,例如 INUS
  • PROJECT_ID:您的專案 ID。

您必須提供更新遮罩,以免其他欄位遭到變更。

僅拒絕清單政策

如要設定僅拒絕清單政策,請按照下列步驟操作:

Firebase 主控台

  1. 在 Firebase 主控台中,前往「Firebase 驗證設定」頁面,然後在導覽窗格中選取「簡訊區域政策」

    前往 Firebase Auth 設定

    1. 選取「拒絕」

    2. 按一下「選取區域」

  2. 新增要禁止傳送簡訊的區域。系統會允許未列入清單的地區。

  3. 按一下 [儲存]

    您可以設定許可清單或拒絕清單,但不能同時設定兩者。這麼做會覆寫先前的所有設定。

Identity Toolkit API

  1. 如要在 Google Cloud 主控台中列印專案的存取權權杖,請執行下列指令:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. 使用 Identity Toolkit API 更新專案設定,以便納入新的政策:

    curl -X PATCH -d "{'sms_region_config':{'allow_by_default':{'disallowed_regions':['REGION_LIST']}}}" \
    -H 'Authorization: Bearer ACCESS_TOKEN' \
    -H 'Content-Type: application/json' \
    'https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=sms_region_config'
    

更改下列內容:

  • ACCESS_TOKEN:您先前產生的存取權杖。
  • REGION_LIST:一或多個區域,例如 INUS
  • PROJECT_ID:您的專案 ID。

您必須提供更新遮罩,以免變更其他欄位。

存取區域簡訊使用指標

本節說明如何查看簡訊使用指標。

如要查看指標,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往 Cloud Monitoring 的「Metrics Explorer」頁面:

    前往 Cloud Monitoring

  2. 選取下列欄位:

    • identitytoolkit.googleapis.com/usage/sent_sms_count,
    • identitytoolkit.googleapis.com/usage/blocked_sms_count,以及
    • firebaseauth.googleapis.com/phone_auth/phone_verification_count.

    請注意,指標有一個 region_code 欄位。您可以使用這段程式碼查看接收簡訊授權的區域。

  3. 在特定地區計算驗證成功率為 verification_success_rate = phone_verification_count/sent_sms_count。通常,驗證成功率達 75% 以上就算合格。

verification_success_rate 值偏低可能表示濫用行為,尤其是在您認為沒有使用者的地區。通常,驗證成功率低於 75% 就屬於低。

如果您懷疑有人濫用簡訊,可以設定區域政策