شما در حال مشاهده مستندات 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>
یک ویژگی منحصر به فرد برای بهروزرسانی.
ویژگی name، ویژگی سفارشی پروفایل توکن دسترسی را که باید بهروزرسانی شود، مشخص میکند. این مثال نحوه استفاده از یک مقدار متغیر ارجاعشده و یک مقدار استاتیک را نشان میدهد.
<Attributes>
<Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
<Attribute name="foo">bar</Attribute>
</Attributes>| پیشفرض: | ناموجود |
| حضور: | اختیاری |
| نوع: | ناموجود |
ویژگیها
| ویژگی | توضیحات | پیشفرض | حضور |
|---|---|---|---|
| نام | نام ویژگی پروفایل که باید اضافه یا تغییر داده شود. | ناموجود | |
| مرجع | مقداری که باید به ویژگی profile اختصاص داده شود. | ناموجود | اختیاری |
متغیرهای جریان
در صورت موفقیت، متغیرهای جریان زیر تنظیم خواهند شد:
-
oauthv2accesstoken.{policyName}.access_token -
oauthv2accesstoken.{policyName}.client_id -
oauthv2accesstoken.{policyName}.refresh_count -
oauthv2accesstoken.{policyName}.organization_name -
oauthv2accesstoken.{policyName}.expires_in //--in seconds -
oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds -
oauthv2accesstoken.{policyName}.issued_at -
oauthv2accesstoken.{policyName}.status -
oauthv2accesstoken.{policyName}.api_product_list -
oauthv2accesstoken.{policyName}.token_type -
oauthv2accesstoken.{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 | ۴۰۱ | برای اطلاعات بیشتر در مورد عیبیابی این خطا، لطفاً به این پست انجمن 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>