درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
درحال فسخ کردن کدهای دسترسی و بازآوری
در برخی موارد، برنامهها ملزم هستند که نشانهها را بهطور صریح باطل یا نامعتبر کنند، برای مثال، زمانی که کاربری از برنامه دارای OAuth خارج میشود. اگر نشانهای را باطل کنید، هرزمانی قبلاز انقضای آن میتوانید دوباره آن را تأیید کنید.
رویه فسخ کد توسط مشخصات فسخ کد OAuth 2.0 تعریف شده است.
Apigee Edge عملیات InvalidateToken را ارائه میدهد که به شما امکان میدهد نقطه پایان لغو گواهینامه اختصاصی را پیکربندی کنید. با انتشار نشانی وب این نقطه پایانی، به توسعهدهندگان نرمافزار امکان میدهید نشانهای صادرشده توسط Edge را نامعتبر کنند.
در اینجا پیکربندی نمونهای برای خطمشی OAuthV2 و عملیات InvalidateToken آورده شده است. در این حالت، هم کد دسترسی و هم کد نوسازی مرتبط با آن باطل میشوند. ازنظر فنی، هر دو باطل میشوند زیرا پرچم آبشاری روی درست تنظیم شده است. برای اطلاعات بیشتر درباره نحوه عملکرد پرچم آبشاری، به بخش ویژگیهای عنصر «نشان» در زیر مراجعه کنید.
<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 را مشخص کنید. وقتی
نوع refreshtoken را میبیند، Edge فرض میکند که این ژتون یک ژتون بازآوری است. اگر آن کد بازآوری
پیدا شود، آن کد باطل میشود. اگر آن کد بازآوری پیدا نشود، Edge بررسی میکند
که آیا کد دسترسی است یا نه. اگر کد دسترسی وجود داشته باشد، آن کد باطل میشود.
توجه: اگر یک کد باطلشده را به خطمشی InvalidateToken ارسال کنید، خطمشی خطا برنمیگرداند، هرچند ممکن است انتظار داشته باشید این کار را انجام دهد. چنین عملیاتی تأثیری ندارد.
-
cascade(اختیاری، بولی، پیشفرض: درست) استفاده اصلی از این مشخصه لغو کردن یک کد نوسازی بدون لغو کردن کد دسترسی مرتبط با آن است. این موارد را درنظر بگیرید:- فقط کد بازآوری را باطل کنید و کد دسترسی مرتبط با آن را باطل نکنید. برای انجام این کار،
نوع <Token> را روی
refreshtokenتنظیم کنید و آبشاری را رویfalseتنظیم کنید. - هم کد دسترسی و هم کد بازآوری را باطل کنید. برای انجام این کار، نوع <Token>
را روی
accesstokenتنظیم کنید. مقدار آبشاری میتواندtrue(پیشفرض) یاfalseباشد. اگر آن را رویtrueتنظیم کنید، هم کد دسترسی و هم کد تجدید لغو میشوند. اگر آن را رویfalseتنظیم کنید، کد دسترسی لغو میشود و کد نوسازی غیرقابلاستفاده میشود. برای توضیحات بیشتر، «یادداشت» زیر را ببینید. - کد دسترسی را باطل کنید و کد بازآوری مرتبط با آن را باطل نکنید. پشتیبانی نمیشود. برای توضیحات بیشتر، «یادداشت» زیر را ببینید.
- فقط کد بازآوری را باطل کنید و کد دسترسی مرتبط با آن را باطل نکنید. برای انجام این کار،
نوع <Token> را روی
توجه: به دلایل امنیتی، اگر کد دسترسی را باطل کنید، کد نوسازی مرتبط نیز باطل خواهد شد. بنابراین، نمیتوانید از
صفت آبشاری برای باطل کردن فقط کد دسترسی استفاده کنید. برای مثال، اگر نوع <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تنظیم کنید، فقط کد دسترسی یا کد بازآوری مشخصشده معتبر است.