خط مشی 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>

یک ویژگی منحصر به فرد برای به‌روزرسانی.

ویژگی 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>

مباحث مرتبط