تایید و لغو توکن های دسترسی

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

لغو توکن‌های دسترسی و به‌روزرسانی

در برخی موارد، برنامه‌ها ملزم هستند که توکن‌ها را صریحاً لغو یا نامعتبر کنند، به عنوان مثال، هنگامی که کاربر از یک برنامه دارای OAuth خارج می‌شود. اگر یک توکن را لغو کنید، می‌توان آن را هر زمان قبل از انقضا دوباره تأیید کرد.

روش لغو توکن توسط مشخصات لغو توکن OAuth 2.0 تعریف شده است.

Apigee Edge یک عملیات InvalidateToken ارائه می‌دهد که به شما امکان می‌دهد یک نقطه پایانی اختصاصی برای ابطال توکن پیکربندی کنید. با انتشار URI این نقطه پایانی، به توسعه‌دهندگان برنامه این امکان را می‌دهید که توکن‌های صادر شده توسط Edge را باطل کنند.

در اینجا یک نمونه پیکربندی برای سیاست OAuthV2 و عملیات InvalidateToken آورده شده است. در این حالت، هم توکن دسترسی و هم توکن به‌روزرسانی مرتبط با آن لغو می‌شوند. از نظر فنی، هر دو به این دلیل لغو می‌شوند که پرچم آبشار روی true تنظیم شده است. برای اطلاعات بیشتر در مورد نحوه عملکرد پرچم آبشار، به بخش ویژگی‌های عنصر Token در زیر مراجعه کنید.

<OAuthV2 name="InvalidateToken">
  <Operation>InvalidateToken</Operation>
  <Tokens>
    <Token type="accesstoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

عنصر <Tokens>/<Token>

متغیر جریانی را شناسایی می‌کند که توکنی را که باید لغو شود مشخص می‌کند. اگر از توسعه‌دهندگان انتظار می‌رود که درخواست لغو را با استفاده از یک پارامتر پرس‌وجو به نام access_token ارسال کنند، برای مثال، متغیر جریان صحیح به صورت request.queryparam.access_token خواهد بود. برای مثال، برای درخواست توکن در یک هدر HTTP، این مقدار را روی request.header.access_token تنظیم کنید.

ویژگی‌ها

  • type (الزامی، رشته): نوع توکنی که توسط متغیر مشخص شده شناسایی می‌شود. مقادیر پشتیبانی شده accesstoken و refreshtoken:
    • برای لغو یک access token، نوع accesstoken را مشخص کنید.
    • برای لغو هر دو توکن دسترسی و به‌روزرسانی، نوع refreshtoken را مشخص کنید. وقتی نوع refreshtoken را می‌بیند، Edge فرض می‌کند که توکن، توکن به‌روزرسانی است. اگر آن توکن به‌روزرسانی پیدا شود، لغو می‌شود. اگر آن توکن به‌روزرسانی پیدا نشود، Edge بررسی می‌کند که آیا آن یک توکن دسترسی است یا خیر. اگر توکن دسترسی وجود داشته باشد، لغو می‌شود.

      نکته: اگر یک توکن از قبل نامعتبر را به یک سیاست InvalidateToken ارسال کنید، این سیاست خطایی برنمی‌گرداند، اگرچه ممکن است انتظار داشته باشید که چنین شود. چنین عملیاتی هیچ تاثیری نخواهد داشت.
  • cascade (اختیاری، بولی، پیش‌فرض: true) کاربرد اصلی این ویژگی، لغو یک توکن به‌روزرسانی بدون لغو توکن دسترسی مرتبط با آن است. این موارد را در نظر بگیرید:
    • فقط یک توکن به‌روزرسانی را لغو کنید و توکن دسترسی مرتبط با آن را لغو نکنید. برای انجام این کار، نوع <Token> را برابر با refreshtoken و مقدار cascade را برابر با false قرار دهید.
    • هم توکن دسترسی و هم توکن به‌روزرسانی را لغو کنید. برای انجام این کار، نوع <Token> را روی accesstoken تنظیم کنید. مقدار cascade می‌تواند true (پیش‌فرض) یا false باشد. اگر آن را روی true تنظیم کنید، هم توکن دسترسی و هم توکن به‌روزرسانی لغو می‌شوند. اگر آن را روی false تنظیم کنید، توکن دسترسی لغو می‌شود و توکن به‌روزرسانی غیرقابل استفاده می‌شود. برای توضیح بیشتر به یادداشت زیر مراجعه کنید.
    • یک توکن دسترسی را لغو کنید و توکن به‌روزرسانی مرتبط با آن را لغو نکنید. پشتیبانی نمی‌شود. برای توضیح بیشتر به یادداشت زیر مراجعه کنید.

توجه: به دلایل امنیتی، اگر یک توکن دسترسی را لغو کنید، توکن به‌روزرسانی مرتبط با آن نیز لغو خواهد شد. بنابراین، نمی‌توانید از ویژگی cascade فقط برای لغو یک توکن دسترسی استفاده کنید. برای مثال، اگر نوع <Token> را روی accesstoken تنظیم کنید و cascade=false را تنظیم کنید، توکن دسترسی لغو می‌شود (همانطور که انتظار می‌رود)؛ با این حال، توکن به‌روزرسانی مرتبط غیرقابل استفاده است. نمی‌توان از آن برای به‌روزرسانی توکن دسترسی لغو شده استفاده کرد. مورد استفاده اصلی برای ویژگی cascade زمانی است که می‌خواهید فقط یک توکن به‌روزرسانی را لغو کنید. در این صورت، نوع <Token> را روی refreshtoken تنظیم کنید و cascade=false را تنظیم کنید. توکن به‌روزرسانی لغو می‌شود، اما توکن دسترسی مرتبط با آن معتبر باقی می‌ماند (تا زمانی که منقضی شود یا لغو شود). برای اطلاعات بیشتر، به این بحث انجمن انجمن مراجعه کنید.

تأیید توکن‌های دسترسی و به‌روزرسانی

از عملیات ValidateToken برای "تأیید مجدد" یک توکن لغو شده استفاده کنید. یعنی وقتی این عملیات را اعمال می‌کنید، وضعیت توکن دسترسی یا به‌روزرسانی مورد نظر از "لغو شده" به "تأیید شده" تغییر می‌کند. می‌توانید هر توکن لغو شده‌ای را که هنوز منقضی نشده است، تأیید کنید.

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

عنصر <Tokens>/<Token>

متغیر جریانی را شناسایی می‌کند که توکن مورد نظر برای اعتبارسنجی را مشخص می‌کند. اگر از توسعه‌دهندگان انتظار می‌رود که یک درخواست اعتبارسنجی را با استفاده از یک پارامتر پرس‌وجو به نام access_token ارسال کنند، برای مثال، متغیر جریان صحیح به صورت request.queryparam.access_token خواهد بود. برای مثال، برای درخواست توکن در یک هدر HTTP، این مقدار را روی request.header.access_token تنظیم کنید.

ویژگی‌ها

  • type (الزامی، رشته) نوع توکنی که توسط متغیر مشخص شده شناسایی می‌شود. مقادیر پشتیبانی شده accesstoken و refreshtoken هستند.
  • cascade (اختیاری، بولی): به طور پیش‌فرض، این گزینه روی true تنظیم شده است و باعث می‌شود اعتبارسنجی به توکن‌های مرتبط نیز منتشر شود. بنابراین، اگر روی یک توکن به‌روزرسانی اعمال شود، توکن دسترسی مرتبط با آن نیز اعتبارسنجی می‌شود. اگر روی یک توکن دسترسی اعمال شود، توکن به‌روزرسانی مرتبط با آن نیز اعتبارسنجی می‌شود. اگر این گزینه را روی false تنظیم کنید، فقط توکن دسترسی یا به‌روزرسانی مشخص‌شده اعتبارسنجی می‌شود.