Antipola: Menetapkan waktu habis masa berlaku yang panjang untuk token OAuth

Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Lihat dokumentasi Apigee Edge.

Apigee menyediakan framework OAuth 2.0 untuk mengamankan API. OAuth2 adalah salah satu skema otorisasi dan autentikasi berbasis token standar terbuka yang paling populer. ID ini memungkinkan aplikasi klien mengakses API atas nama pengguna tanpa mengharuskan pengguna membocorkan nama pengguna dan sandi mereka.

Apigee memungkinkan developer membuat akses dan/atau memperbarui token dengan menerapkan salah satu dari empat jenis pemberian OAuth2 - kredensial klien, sandi, implisit, dan kode otorisasi - menggunakan kebijakan OAuthv2. Aplikasi klien menggunakan token akses untuk memakai API yang aman. Setiap token akses memiliki waktu habis masa berlakunya sendiri, yang dapat ditetapkan dalam kebijakan OAuthv2.

Token refresh dikeluarkan secara opsional bersama dengan token akses dengan beberapa jenis pemberian. Token refresh digunakan untuk memperoleh token akses baru yang valid setelah token akses asli habis masa berlakunya atau dicabut. Waktu habis masa berlaku untuk token refresh juga dapat ditetapkan di kebijakan OAuthv2.

Antipola

Menetapkan waktu habis masa berlaku yang lama untuk token akses dan/atau token refresh dalam kebijakan OAuthv2 akan mengakibatkan akumulasi token OAuth dan meningkatkan penggunaan ruang disk pada node Cassandra.

Contoh kebijakan OAuthV2 berikut menunjukkan waktu habis masa berlaku yang panjang, yaitu 200 hari untuk token refresh:

<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>

Dalam contoh di atas:

  • Token akses ditetapkan dengan waktu habis masa berlaku yang cukup rendah, yaitu 30 menit.
  • Token refresh ditetapkan dengan waktu habis masa berlaku yang sangat lama, yaitu 200 hari.
  • Jika traffic ke API ini adalah 10 permintaan/detik, maka API ini dapat menghasilkan sebanyak 864.000 token dalam sehari.
  • Karena masa berlaku token refresh hanya akan berakhir setelah 200 hari, token tersebut akan tetap tersimpan di penyimpanan data (Cassandra) untuk waktu yang lama sehingga menghasilkan akumulasi berkelanjutan.

Dampak

  • Menyebabkan pertumbuhan penggunaan ruang disk yang signifikan pada penyimpanan data (Cassandra).

Praktik terbaik

Gunakan waktu habis masa berlaku yang lebih rendah untuk akses OAuth dan token refresh, bergantung pada persyaratan keamanan spesifik Anda. Dengan begitu, keduanya dapat dihapus permanen dengan cepat sehingga menghindari akumulasi.

Tetapkan waktu habis masa berlaku untuk token refresh sedemikian rupa sehingga valid untuk periode yang sedikit lebih lama daripada token akses. Misalnya, jika Anda menetapkan 30 menit untuk token akses, tetapkan (setidaknya) 24 jam untuk token refresh.

Hal ini memastikan bahwa:

  • Terdapat cukup waktu untuk menggunakan token refresh guna membuat token akses dan refresh yang baru setelah masa berlaku token akses berakhir.
  • Token refresh akan segera habis masa berlakunya dan dapat dihapus permanen tepat waktu untuk menghindari akumulasi.

Bacaan lebih lanjut