خط‌مشی SetOAuthV2Info

درحال مشاهده اسناد 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

نام داخلی سیاست. مقدار مشخصه name می تواند شامل حروف، اعداد، فاصله، خط تیره، زیرخط و نقطه باشد. این مقدار نمی تواند بیش از 255 کاراکتر باشد.

در صورت تمایل، از عنصر <DisplayName> برای برچسب گذاری خط مشی در ویرایشگر پروکسی UI مدیریت با نامی به زبان طبیعی دیگر استفاده کنید.

N/A مورد نیاز
continueOnError

برای بازگرداندن خطا در صورت شکست خط مشی، روی false تنظیم کنید. این رفتار مورد انتظار برای اکثر سیاست ها است.

روی true تنظیم کنید تا اجرای جریان حتی پس از شکست خط مشی ادامه یابد.

نادرست اختیاری
enabled

برای اجرای خط مشی روی true تنظیم کنید.

برای خاموش کردن خط مشی، روی false تنظیم کنید. این سیاست حتی اگر به یک جریان وابسته باشد اجرا نخواهد شد.

درست است اختیاری
async

این ویژگی منسوخ شده است.

نادرست منسوخ شده است

عنصر <DisplayName>

علاوه بر ویژگی name برای برچسب‌گذاری خط‌مشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.

<DisplayName>Policy Display Name</DisplayName>
پیش فرض

N/A

اگر این عنصر را حذف کنید، از مقدار ویژگی name خط مشی استفاده می شود.

حضور اختیاری
تایپ کنید رشته

عنصر <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_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 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>

موضوعات مرتبط