您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
Apigee Edge 提供 OAuth 2.0 架構,可保護 API 安全。OAuth2 是最熱門的開放標準之一,採用權杖式驗證和授權機制。這樣一來,用戶端應用程式就能代表使用者存取 API,不必要求使用者提供使用者名稱和密碼。
Apigee Edge 允許開發人員實作四種 OAuth2 授權類型中的任一種,藉此產生存取和/或更新權杖,包括:用戶端憑證、密碼、隱含和授權碼,並使用 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) 的磁碟空間使用量大幅增加。
- 對私有雲使用者而言,這可能會增加儲存空間費用,最糟的情況是磁碟空間不足,導致執行階段錯誤或服務中斷。
最佳做法
請根據具體安全需求,為 OAuth 存取權和更新權杖設定適當的較短到期時間,以便快速清除權杖,避免累積。
設定更新權杖的到期時間時,請確保該權杖的有效期限比存取權杖稍長。舉例來說,您可以將存取權杖設為 30 分鐘,更新權杖則設為 60 分鐘。
這能確保:
- 存取權杖過期後,您有充足的時間使用更新權杖產生新的存取和更新權杖。
- 重新整理權杖會在稍後失效,並可及時清除,避免累積。