查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
Apigee Edge 提供 OAuth 2.0 架構, 安全 APIOAuth2 是最常見的開放標準式權杖式驗證 授權機制可讓用戶端應用程式代表使用者存取 API,而不必 要求使用者提供自己的使用者名稱和密碼。
Apigee Edge 可讓開發人員透過實作任一種 四種 OAuth2 授權類型: 用戶端憑證, password、 隱含及 授權碼 - 使用 OAuthv2 政策。 用戶端應用程式會透過存取權杖使用安全的 API。每個存取權杖都有各自的到期時間 您可以在 OAuthv2 政策中設定。
您可以選擇將更新權杖與某些授權類型一起核發。重新整理 權杖可用於取得新的有效存取權杖。 已撤銷。您也可以在 OAuthv2 政策中設定更新憑證的到期時間。
這項反面模式與 設定較長的到期時間 對於 OAuth 權杖而言。
反模式
在 OAuthv2 政策中,設定更新權杖沒有到期時間 會造成 OAuth 權杖的累積,並增加 Cassandra 節點上的磁碟空間。
以下 OAuthV2 政策範例顯示缺少設定:
<RefreshTokenExpiresIn>
:
<OAuthV2 name="GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes --> <!--<RefreshTokenExpiresIn> is missing --> <SupportedGrantTypes> <GrantType>password</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> </OAuthV2>
在上述範例中:
- 存取權杖的到期時間合理,但持續時間約為 30 分鐘。
- 未設定更新權杖的到期時間。
- 重新整理權杖會永久保留在資料儲存庫 (Cassandra) 中,導致資料 以及累計
- 沒有到期時間的更新權杖可以無限期用於產生存取權杖。
- 如果這個 API 的流量每秒為 10 個要求,可以產生最多 864,000 個權杖 一天後
影響
- 如果在沒有到期日的情況下建立更新權杖,系統會產生兩個主要結果:
- 更新權杖日後隨時都可使用 (可能為數年) 取得存取權 產生下一個符記這可能會對安全性造成影響。
- 在 Cassandra 中,含有更新權杖的資料列一律不會刪除。 這會在 Cassandra 中累積資料。
- 如果不使用更新權杖 取得新的存取權杖,但改為建立新的更新權杖和存取權杖 舊版的更新權杖會保留在 Cassandra 中。因此,重新整理 符記會繼續在 Cassandra 中累積,進一步增加 會增加磁碟用量以及密集壓縮,最終將會導致讀取/寫入 提供最久的延遲時間
最佳做法
請務必為重新整理和存取權杖使用適當的到期時間。詳情請見 最佳做法 以便設定到期日 更新次數和存取權杖請務必為這兩種存取權指定到期日 並更新政策中的權杖詳情請參閱 OauthV2 政策說明文件 ,進一步瞭解政策設定。
Edge 私有雲客戶適用的最佳做法
本節說明 Edge 私有雲客戶適用的最佳做法。
指定預設的更新權杖到期時間
根據預設,如果政策設定中未指定更新權杖到期時間, Edge 會建立沒有到期時間的更新權杖。如要覆寫這個行為 下列程序:
- 在訊息處理器節點上編輯或建立設定覆寫檔案
$APIGEE_ROOT/customer/application/message-processor.properties
。請確認這個檔案: 可由apigee
使用者讀取。 - 在檔案中新增下列程式碼:
敬上 如未在政策中指定更新權杖,系統會將預設的更新權杖到期時間設為 1 小時。 不過,您可以根據業務需求變更這個預設價值。conf_keymanagement_oauth_refresh_token_expiry_time_in_millis=3600000
- 重新啟動訊息處理工具服務:
apigee-service edge-message-processor restart
- 逐一重複執行所有訊息處理器節點的步驟。
Cassandra 的最佳做法
嘗試升級至可公開發布的最新版 Apigee。Apigee 繼續 發布修正和強化功能,持續改善及改善管理體驗 符記在 Apigee 中,存取和重新整理權杖會儲存在 Cassandra 中 置於「kms」鍵空間中。您應該確保 鍵空間設為「LeveledCompactionStrategy
」。
您應檢查下列索引「並未」顯示:
- 公里.oauth_20_access_tokens.oauth_20_access_tokens_organization_name_idx#f0f0f0 和
- kms.oauth_20_access_tokens.oauth_20_access_tokens_status_idx
您也可以
kms.oauth_20_access_tokens
表格中的 gc_grace_seconds
從預設的 10 天改為較低的
值 (例如 3 天),確保因權杖遭到刪除而產生
就會更快從資料儲存庫中清除。