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

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

Apigee Edge menyediakan framework OAuth 2.0 untuk Google Cloud API aman. OAuth2 adalah salah satu otentikasi standar terbuka, berbasis token yang paling populer, dan skema otorisasi secara otomatis. Layanan ini memungkinkan aplikasi klien mengakses API atas nama pengguna tanpa mengharuskan pengguna untuk membocorkan nama pengguna dan {i>password<i} mereka.

Apigee Edge memungkinkan developer menghasilkan akses dan/atau token refresh dengan mengimplementasikan salah satu keempat jenis pemberian izin OAuth2 - kredensial klien, sandi, implisit, dan kode otorisasi - menggunakan kebijakan OAuthv2. Aplikasi klien menggunakan token akses untuk menggunakan API yang aman. Setiap token akses memiliki masa berlaku masing-masing yang dapat ditetapkan dalam kebijakan OAuthv2.

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

Anti-pola

Menetapkan waktu habis masa berlaku yang lama untuk token akses dan/atau token refresh dalam kebijakan OAuthv2 menyebabkan akumulasi token OAuth dan meningkatkan penggunaan ruang {i>disk<i} pada node Cassandra.

Contoh kebijakan OAuthV2 berikut menunjukkan waktu habis masa berlaku yang lama, 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 masa berlaku yang sangat lama, yaitu 200 hari.
  • Jika traffic ke API ini adalah 10 permintaan/detik, 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 kapasitas disk yang signifikan di penyimpanan data (Cassandra).
  • Bagi pengguna Private Cloud, hal ini dapat meningkatkan biaya penyimpanan, atau dalam kasus terburuk, disk dapat menjadi penuh dan menyebabkan error runtime atau pemadaman layanan.

Praktik Terbaik

Gunakan waktu habis masa berlaku yang lebih rendah yang sesuai untuk akses OAuth dan token refresh, tergantung pada persyaratan keamanan, sehingga dapat dihapus dengan cepat dan dengan demikian menghindari akumulasi.

Menyetel waktu habis masa berlaku untuk token refresh sedemikian rupa agar valid untuk jangka waktu yang lebih lama daripada token akses. Misalnya, jika Anda menetapkan 30 menit untuk token akses dan kemudian menetapkan 60 menit untuk token refresh.

Hal ini memastikan bahwa:

  • Ada cukup waktu untuk menggunakan token refresh guna membuat akses baru dan token refresh setelah masa berlaku token akses telah berakhir.
  • Masa berlaku token penyegaran akan segera berakhir dan dapat dihapus tepat waktu untuk menghindari akumulasi.

Bacaan lebih lanjut