درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
چه
به شما امکان میدهد مشخصههای سفارشی مرتبط با یک کد دسترسی را اضافه یا بهروز کنید. مشخصههای سفارشی ممکن است شامل مواردی مثل نام بخش، شناسه مشتری، یا شناسه جلسه باشد. همچنین سفارشیسازی نشانها و کدهای مجوز را ببینید.
فقط میتوانید مشخصههای سفارشی را اضافه یا اصلاح کنید. نمیتوانید از این خطمشی برای تغییر فیلدهایی مثل محدوده، وضعیت، expires_in، developer_email، client_id، org_name، یا refresh_count استفاده کنید. اگر صفت ازقبل وجود داشته باشد، این خطمشی آن را بهروز میکند. اگر وجود نداشته باشد، خطمشی آن را اضافه میکند. توکن دسترسی ارجاعشده باید معتبر و در وضعیت تأییدشده باشد.
نمونهها
مثال پایه
در زیر یک خطمشی نمونه برای بهروز کردن کد دسترسی OAuth 2.0 آورده شده است. مثال زیر
با جستجوی پارامتر پُرسمانی بهنام
access_token، نشانه دسترسی را در پیام درخواست پیدا میکند. وقتی برنامه مشتری یک کد دسترسی ارائه میدهد، خطمشی زیر کد دسترسی را در پارامتر پُرسمان پیدا میکند. سپس نمایه
رمز دسترسی را بهروز میکند. دارایی سفارشیای بهنام department.id به
نمایه اضافه میکند.
<SetOAuthV2Info name="SetOAuthV2Info">
<AccessToken ref="request.queryparam.access_token"></AccessToken>
<Attributes>
<Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
</Attributes>
</SetOAuthV2Info>مرجع عنصر
مرجع عنصر، عناصر و مشخصههای خطمشی SetOAuthV2 را توصیف میکند.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1"> <DisplayName>Set OAuth v2.0 Info 1</DisplayName> <AccessToken ref={some-variable}></AccessToken> <Attributes/> </SetOAuthV2Info> </xml>
مشخصههای <SetOAuthV2Info>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">
جدول زیر ویژگی هایی را توصیف می کند که برای همه عناصر اصلی خط مشی مشترک هستند:
| صفت | توضیحات | پیش فرض | حضور |
|---|---|---|---|
name | نام داخلی سیاست. مقدار مشخصه در صورت تمایل، از عنصر | N/A | مورد نیاز |
continueOnError | برای بازگرداندن خطا در صورت شکست خط مشی، روی روی | نادرست | اختیاری |
enabled | برای اجرای خط مشی روی برای خاموش کردن خط مشی، روی | درست است | اختیاری |
async | این ویژگی منسوخ شده است. | نادرست | منسوخ شده است |
عنصر <DisplayName>
علاوه بر ویژگی name برای برچسبگذاری خطمشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.
<DisplayName>Policy Display Name</DisplayName>
| پیش فرض | N/A اگر این عنصر را حذف کنید، از مقدار ویژگی |
|---|---|
| حضور | اختیاری |
| تایپ کنید | رشته |
عنصر <AccessToken>
متغیری را که کد دسترسی در آن قرار دارد شناسایی میکند. برای مثال، اگر کد دسترسی بهعنوان پارامتر پُرسمان به پیام درخواست پیوست شده است، request.queryparam.access_token را مشخص کنید. میتوانید از هر متغیر معتبری که به
نشان ارجاع میدهد استفاده کنید. یا میتواند رشته نشانه تحتاللفظی را ارسال کند (مورد نادر).
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| پیشفرض: | موجود نیست |
| حضور: | الزامی |
| نوع: | رشته |
مشخصهها
| مشخصه | شرح | پیشفرض | حضور |
|---|---|---|---|
| مرجع |
متغیر کد دسترسی. معمولاً از متغیر جاریسازی بازیابی میشود. |
موجود نیست | اختیاری |
عنصر <Attributes>
مجموعهای از مشخصهها در نمایه کد دسترسی که اصلاح یا تکمیل خواهد شد.
| پیشفرض: | موجود نیست |
| حضور: | الزامی |
| نوع: | موجود نیست |
عنصر <Attributes>/<Attribute>
مشخصه فردی برای بهروزرسانی.
مشخصه نام، دارایی سفارشی نمایه کد دسترسی را که باید بهروز شود شناسایی میکند. این مثال نشان میدهد که چگونه از مقدار متغیر مرجع و مقدار ثابت استفاده کنید.
<Attributes>
<Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
<Attribute name="foo">bar</Attribute>
</Attributes>| پیشفرض: | موجود نیست |
| حضور: | اختیاری |
| نوع: | موجود نیست |
مشخصهها
| مشخصه | شرح | پیشفرض | حضور |
|---|---|---|---|
| نام | نام مشخصه نمایهای که باید اضافه یا تغییر کند. | موجود نیست | |
| مرجع |
مقدار اختصاص دادهشده به مشخصه نمایه. |
موجود نیست | اختیاری |
متغیرهای جریان
درصورت موفقیت، متغیرهای جریان زیر تنظیم خواهد شد:
oauthv2accesstoken.{policyName}.access_tokenoauthv2accesstoken.{policyName}.client_idoauthv2accesstoken.{policyName}.refresh_countoauthv2accesstoken.{policyName}.organization_nameoauthv2accesstoken.{policyName}.expires_in //--in secondsoauthv2accesstoken.{policyName}.refresh_token_expires_in //--in secondsoauthv2accesstoken.{policyName}.issued_atoauthv2accesstoken.{policyName}.statusoauthv2accesstoken.{policyName}.api_product_listoauthv2accesstoken.{policyName}.token_typeoauthv2accesstoken.{policyName}.{custom_attribute_name}
طرح
هر نوع خطمشی با یک طرحواره XML (.xsd) تعریف میشود. برای مرجع، طرحوارههای خطمشی
در GitHub دردسترس است.
مرجع خطا
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطایی را که Edge هنگام راهاندازی خطا در این خطمشی تنظیم میکند شرح میدهد. این اطلاعات برای دانستن اینکه آیا قوانین خطا را برای مدیریت خطاها توسعه میدهید یا نه مهم است. برای کسب اطلاعات بیشتر، آنچه باید درباره خطاهای خطمشی بدانیدو رسیدگی به اشکالات را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای خطمشی رخ دهند.
| کد خطا | وضعیت HTTP | علت |
|---|---|---|
steps.oauth.v2.access_token_expired |
۵۰۰ | کد دسترسی ارسالشده به خطمشی منقضی شده است. |
steps.oauth.v2.invalid_access_token |
۵۰۰ | کد دسترسی ارسالشده به خطمشی نامعتبر است. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | لطفاً برای اطلاعات درباره عیبیابی این خطا، این پست «انجمن Apigee» را ببینید. |
خطاهای استقرار
برای کسب اطلاعات درباره خطاهای استقرار، به پیامی که در واسط کاربر گزارش شده است مراجعه کنید.
متغیرهای خطا
این متغیرها زمانی تنظیم میشوند که این خطمشی در زمان اجرا باعث بروز خطا شود.
| متغیر | مکان | مثال |
|---|---|---|
fault.name="fault_name" |
fault_name نام خطا است، همانطور که در جدول خطاهای زمان اجرا در بالا فهرست شده است. نام خطا آخرین بخش کد خطا است. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name نام مشخصشده کاربر برای خطمشیای است که خطا را ایجاد کرده است. | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name نام مشخصشده کاربر برای خطمشیای است که خطا را ایجاد کرده است. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name نام مشخصشده کاربر برای خطمشیای است که خطا را ایجاد کرده است. | oauthV2.SetTokenInfo.cause = Invalid Access Token |
نمونه پاسخ خطا
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}قانون خطای نمونه
<FaultRule name=SetOAuthV2Info Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
<Condition>(fault.name = "invalid_access_token")</Condition>
</Step>
<Condition>(oauthV2.failed = true) </Condition>
</FaultRule>