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

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

لغو دسترسی و بازخوانی نشانه ها

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

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

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:
    • برای لغو یک نشانه دسترسی، نوع accesstoken را مشخص کنید.
    • برای لغو هر دو توکن دسترسی و بازخوانی، نوع refreshtoken را مشخص کنید. هنگامی که Edge نوع refreshtoken را می بیند، توکن را یک نشانه رفرش فرض می کند. اگر آن نشانه رفرش پیدا شد، باطل می شود. اگر آن توکن به‌روزرسانی یافت نشد، Edge بررسی می‌کند که آیا نشانه دسترسی است یا خیر. اگر نشانه دسترسی وجود داشته باشد، پس از آن لغو می شود.

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

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