反模式:為 OAuth 權杖設定較長的到期時間

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

Apigee Edge 提供 OAuth 2.0 架構, 安全 APIOAuth2 是最常見的開放標準式權杖式驗證 授權機制可讓用戶端應用程式代表使用者存取 API,而不必 要求使用者提供自己的使用者名稱和密碼。

Apigee Edge 可讓開發人員透過實作任一種 四種 OAuth2 授權類型: 用戶端憑證password隱含授權碼 - 使用 OAuthv2 政策。 用戶端應用程式會透過存取權杖使用安全的 API。每個存取權杖有各自的到期日 您可以在 OAuthv2 政策中設定。

您可以選擇將更新權杖與某些授權類型一起核發。重新整理 權杖可用於取得新的有效存取權杖。 已撤銷。您也可以在 OAuthv2 政策中設定更新憑證的到期時間。

反模式

OAuthv2 政策中設定存取權杖和/或更新權杖的到期時間 會造成 OAuth 權杖的累積,並增加 Cassandra 節點上的磁碟空間。

以下 OAuthV2 政策範例,更新憑證的到期時間為 200 天:

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days -->
    <SupportedGrantTypes>
      <GrantType>password</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

在上述範例中:

  • 設定存取權杖的到期時間,應該合理低於 30 分鐘。
  • 其設定更新權杖的到期時間非常長 (200 天)。
  • 如果這個 API 的流量每秒 10 次要求,就能產生多達 864,000 個權杖 一天後
  • 由於更新權杖只會在 200 天後過期,因此會保留在資料儲存庫 (Cassandra) 中 導致持續累計。

影響

  • 導致資料儲存庫 (Cassandra) 上的磁碟空間用量大幅增加。
  • 對 Private Cloud 使用者來說,這可能會導致儲存空間費用增加;在最糟的情況下,磁碟可能會已滿,導致執行階段錯誤或服務中斷。

最佳做法

請根據具體的需要,為 OAuth 存取和更新權杖設定適當的到期時間 進而迅速全面清除,避免累計。

設定重新整理權杖的到期時間,並讓憑證的有效期限延長 而非存取權杖舉例來說,如果您為存取權杖設定 30 分鐘,然後為存取權杖設定 60 分鐘 重新整理權杖。

這能確保:

  • 您可以選擇使用更新權杖來產生新的存取權和更新權杖, 存取權杖已過期。
  • 更新權杖會在一段時間後失效,並可能及時清除, 避免累計

延伸閱讀