Antipattern: زمان انقضای طولانی را برای توکن های OAuth تعیین کنید

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

Apigee Edge چارچوب OAuth 2.0 را برای ایمن سازی API ها فراهم می کند. OAuth2 یکی از محبوب ترین طرح های احراز هویت و مجوز مبتنی بر توکن است. برنامه‌های سرویس گیرنده را قادر می‌سازد تا از طرف کاربران به API دسترسی داشته باشند بدون اینکه کاربران مجبور شوند نام کاربری و رمز عبور خود را فاش کنند.

Apigee Edge به توسعه‌دهندگان اجازه می‌دهد تا با اجرای هر یک از چهار نوع اعطای OAuth2 - اعتبار مشتری ، رمز عبور ، ضمنی و کد مجوز - با استفاده از خط‌مشی OAuthv2 ، توکن‌های دسترسی و/یا تازه‌سازی ایجاد کنند. برنامه های مشتری از نشانه های دسترسی برای مصرف API های امن استفاده می کنند. هر کد دسترسی زمان انقضای خاص خود را دارد که می تواند در خط مشی OAuthv2 تنظیم شود.

توکن‌های Refresh به صورت اختیاری همراه با توکن‌های دسترسی با برخی از انواع کمک‌ها صادر می‌شوند. توکن‌های Refresh برای به دست آوردن نشانه‌های دسترسی جدید و معتبر پس از منقضی شدن یا لغو شدن نشانه دسترسی اصلی استفاده می‌شوند. زمان انقضا برای نشانه‌های به‌روزرسانی نیز می‌تواند در خط‌مشی 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 درخواست در ثانیه باشد، می تواند تا 864000 توکن در روز تولید کند.
  • از آنجایی که توکن‌های تازه‌سازی تنها پس از 200 روز منقضی می‌شوند، آنها برای مدت طولانی در انبار داده (Cassandra) باقی می‌مانند که منجر به انباشت مداوم می‌شود.

تاثیر

  • منجر به رشد قابل توجه استفاده از فضای دیسک در فروشگاه داده (Cassandra) می شود.
  • برای کاربران Private Cloud، این می‌تواند هزینه‌های ذخیره‌سازی را افزایش دهد یا در بدترین حالت، دیسک پر شود و منجر به خطاهای زمان اجرا یا قطعی شود.

بهترین تمرین

بسته به نیازهای امنیتی خاص خود، از زمان انقضای مناسب کمتری برای دسترسی OAuth و بازخوانی توکن‌ها استفاده کنید تا به سرعت پاک شوند و در نتیجه از تجمع جلوگیری شود.

زمان انقضا برای نشانه های به روز رسانی را به گونه ای تنظیم کنید که برای مدت کمی طولانی تر از توکن های دسترسی معتبر باشد. به عنوان مثال، اگر 30 دقیقه برای نشانه دسترسی و سپس 60 دقیقه برای نشانه رفرش تنظیم کنید.

این تضمین می کند که:

  • زمان کافی برای استفاده از نشانه رفرش برای ایجاد دسترسی جدید و بازخوانی توکن ها پس از منقضی شدن نشانه دسترسی وجود دارد.
  • توکن‌های تازه‌سازی مدتی بعد منقضی می‌شوند و می‌توانند به موقع پاک شوند تا از انباشتگی جلوگیری شود.

در ادامه مطلب