شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
نمای کلی
نشانههای دسترسی OAuth2 مرتبط با شناسه برنامه توسعهدهنده یا شناسه کاربر نهایی برنامه یا هر دو را لغو میکند.
از خط مشی OAuthv2 برای ایجاد نشانه دسترسی OAuth 2.0 استفاده کنید. یک توکن تولید شده توسط Apigee دارای فرمت زیر است:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
عنصر application_name
حاوی شناسه برنامه توسعه دهنده مرتبط با توکن است.
به طور پیش فرض، Apigee شناسه کاربر نهایی را در توکن لحاظ نمی کند. میتوانید با افزودن عنصر <AppEndUser>
به خطمشی OAuthv2 ، Apigee را برای گنجاندن شناسه کاربر نهایی پیکربندی کنید:
<OAuthV2 name="GenerateAccessTokenClient"> <Operation>GenerateAccessTokenV/Operation> ... <AppEndUser>request.queryparam.app_enduser</AppEndUser> </OAuthV2>
در این مثال، شناسه کاربر نهایی را در یک پارامتر جستجو به نام app_enduser
به خط مشی OAuthv2 ارسال کنید. سپس شناسه کاربر نهایی در توکن عنصر app_enduser
گنجانده می شود:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
لغو توسط شناسه برنامه توسعه دهنده
نشانههای دسترسی OAuth2 مرتبط با شناسه برنامه توسعهدهنده را لغو کنید. همه توکنهای دسترسی OAuth2 تولید شده توسط Apigee شامل شناسه برنامه توسعهدهنده مرتبط با توکن هستند. سپس میتوانید توکنها را بر اساس شناسه برنامه لغو کنید.
از Developer apps API برای دریافت لیستی از شناسه های برنامه برای یک توسعه دهنده خاص استفاده کنید.
همچنین میتوانید از Developer apps API برای دریافت جزئیات یک برنامه استفاده کنید.
لغو با شناسه کاربر نهایی برنامه
رمزهای دسترسی OAuth2 مرتبط با شناسه کاربر نهایی برنامه خاص را لغو کنید. این رمز مربوط به شناسه کاربری است که توکن ها برای او صادر شده است.
به طور پیش فرض، هیچ فیلدی برای شناسه کاربر نهایی در نشانه دسترسی OAuth وجود ندارد. برای فعال کردن لغو نشانههای دسترسی OAuth 2.0 توسط شناسه کاربر نهایی، باید خطمشی OAuthv2 را طوری پیکربندی کنید که شناسه کاربر در توکن گنجانده شود، همانطور که در بالا نشان داده شده است.
برای دریافت شناسه کاربر نهایی برنامه، از Developer apps API استفاده کنید.
نمونه ها
نمونههای زیر از خطمشی Revoke OAuth V2 برای لغو نشانههای دسترسی OAuth2 استفاده میکنند.
شناسه برنامه توسعه دهنده
برای لغو نشانههای دسترسی با شناسه برنامه توسعهدهنده، از عنصر <AppId>
در خطمشی خود استفاده کنید.
مثال زیر انتظار دارد شناسه برنامه توسعه دهنده نشانه دسترسی را در یک پارامتر پرس و جو به نام app_id
پیدا کند:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> </RevokeOAuthV2>
با توجه به شناسه برنامه توسعه دهنده، این خط مشی رمز دسترسی را لغو می کند.
لغو قبل از مهر زمانی
برای لغو نشانههای دسترسی توسط شناسه برنامه توسعهدهنده که قبل از تاریخ و زمان خاصی ایجاد شدهاند، از عنصر <RevokeBeforeTimestamp>
در خطمشی خود استفاده کنید. <RevokeBeforeTimestamp>
زمان دوره UTC را بر حسب میلی ثانیه مشخص می کند. تمام توکن های صادر شده قبل از آن زمان باطل می شوند.
مثال زیر نشانههای دسترسی یک برنامه توسعهدهنده ایجاد شده قبل از ۱ ژوئیه ۲۰۱۹ را لغو میکند:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> <RevokeBeforeTimestamp>1561939200000</RevokeBeforeTimestamp> </RevokeOAuthV2>
عنصر <RevokeBeforeTimestamp>
یک عدد صحیح 64 بیتی (طولانی) می گیرد که نشان دهنده تعداد میلی ثانیه های سپری شده از نیمه شب، در 1 ژانویه 1970 UTC است.
مرجع عنصر
مرجع عنصر عناصر و ویژگی های خط مشی RevokeOAuthV2 را توصیف می کند.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1"> <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <AppId ref="variable"></AppId> <EndUserId ref="variable"></EndUserId> <RevokeBeforeTimestamp ref="variable"></RevokeBeforeTimestamp> <Cascade>false</Cascade> </RevokeOAuthV2>
ویژگی های <RevokeOAuthV2>
<RevokeOAuthV2 continueOnError="false" enabled="true" name="Revoke-OAuth-v20-1">
جدول زیر ویژگی هایی را توصیف می کند که برای همه عناصر اصلی خط مشی مشترک هستند:
صفت | توضیحات | پیش فرض | حضور |
---|---|---|---|
name | نام داخلی سیاست. مقدار مشخصه در صورت تمایل، از عنصر | N/A | مورد نیاز |
continueOnError | برای بازگرداندن خطا در صورت شکست خط مشی، روی روی | نادرست | اختیاری |
enabled | برای اجرای خط مشی روی برای خاموش کردن خط مشی، روی | درست است | اختیاری |
async | این ویژگی منسوخ شده است. | نادرست | منسوخ شده است |
عنصر <DisplayName>
علاوه بر ویژگی name
برای برچسبگذاری خطمشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.
<DisplayName>Policy Display Name</DisplayName>
پیش فرض | N/A اگر این عنصر را حذف کنید، از مقدار ویژگی |
---|---|
حضور | اختیاری |
تایپ کنید | رشته |
عنصر <AppId>
شناسه برنامه توسعه دهنده نشانه هایی را که باید باطل شوند مشخص می کند. متغیری را که حاوی شناسه برنامه است یا شناسه واقعی برنامه را ارسال کنید.
<AppId>appIdString</AppId> or: <AppId ref="request.queryparam.app_id"></AppId>
پیش فرض | |
---|---|
حضور | اختیاری |
تایپ کنید | رشته |
مقادیر معتبر | یا یک متغیر جریان حاوی یک رشته شناسه برنامه یا یک رشته تحت اللفظی. |
عنصر <Cascade>
اگر true
و شما یک نشانه دسترسی غیرشفاف سنتی دارید، در صورتی که <AppId>
یا <EndUserId>
مطابقت داشته باشند، هر دو نشانه تازه سازی و نشانه دسترسی لغو خواهند شد. اگر false
، فقط نشانه دسترسی باطل می شود و نشانه تازه سازی بدون تغییر است. همین رفتار فقط برای توکن های دسترسی غیر شفاف اعمال می شود.
<Cascade>false<Cascade>
پیش فرض | نادرست |
---|---|
حضور | اختیاری |
تایپ کنید | بولی |
مقادیر معتبر | true یا false |
عنصر <EndUserId>
شناسه کاربر نهایی برنامه برای لغو را مشخص می کند. متغیری را که حاوی شناسه کاربری یا یک رشته رمز واقعی است، ارسال کنید.
<EndUserId>userIdString</EndUserId> or: <EndUserId ref="request.queryparam.access_token"></EndUserId>
پیش فرض | |
---|---|
حضور | اختیاری |
تایپ کنید | رشته |
مقادیر معتبر | یا یک متغیر جریان حاوی یک رشته شناسه کاربر یا یک رشته تحت اللفظی. |
عنصر <RevokeBeforeTimestamp>
نشانه هایی را که قبل از مهر زمانی صادر شده اند باطل کنید. این عنصر با <AppId>
و <EndUserId>
کار می کند تا به شما امکان می دهد توکن ها را قبل از یک زمان خاص لغو کنید. مقدار پیش فرض زمانی است که سیاست اجرا می شود.
<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp> or: <RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
پیش فرض | مهر زمانی که سیاست اجرا می شود. |
---|---|
حضور | اختیاری |
تایپ کنید | عدد صحیح 64 بیتی (طولانی) نشان دهنده تعداد میلی ثانیه های سپری شده از نیمه شب، در 1 ژانویه 1970 UTC. |
مقادیر معتبر | یا یک متغیر جریان حاوی یک مهر زمانی یا یک مهر زمانی تحت اللفظی. مهر زمانی نمی تواند در آینده باشد و نمی تواند قبل از 1 ژانویه 2014 باشد. |
متغیرهای جریان
خط مشی RevokeOAuthV2 متغیرهای جریان را تنظیم نمی کند.
مرجع خطا
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند. نام خطاهای نشان داده شده در زیر رشته هایی هستند که در صورت بروز خطا به متغیر fault.name
اختصاص داده می شوند. برای جزئیات بیشتر به بخش متغیرهای خطا در زیر مراجعه کنید.
کد خطا | وضعیت HTTP | علت |
---|---|---|
steps.oauth.v2.InvalidFutureTimestamp | 500 | مهر زمانی نمی تواند در آینده باشد. |
steps.oauth.v2.InvalidEarlyTimestamp | 500 | مهر زمانی نمی تواند زودتر از 1 ژانویه 2014 باشد. |
steps.oauth.v2.InvalidTimestamp | 500 | مهر زمانی نامعتبر است. |
steps.oauth.v2.EmptyAppAndEndUserId | 500 | هر دو AppdId و EndUserId نمی توانند خالی باشند. |
خطاهای استقرار
برای اطلاعات در مورد خطاهای استقرار به پیام گزارش شده در UI مراجعه کنید.
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند.
متغیرها | کجا | مثال |
---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "IPDeniedAccess" |
oauthV2. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oauthV2.GetTokenInfo.failed = true |
oauthV2. policy_name .fault.name | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2. policy_name .fault.cause | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
نمونه پاسخ خطا
{ "fault":{ "faultstring":"Timestamp is in the future.", "detail":{ "errorcode":"steps.oauth.v2.InvalidFutureTimestamp" } } }
مثال قانون خطا
<FaultRule name="RevokeOAuthV2 Faults"> <Step> <Name>AM-InvalidTimestamp</Name> </Step> <Condition>(fault.name = "InvalidFutureTimestamp")</Condition> </FaultRule>