سفارشی‌سازی کردن داده‌واحدها و کدهای مجوز

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

درباره فراداده کد

‫Apigee Edge نمودارهای دسترسی OAuth، نمودارهای بازآوری، و کدهای مجوز را تولید می‌کند و آن‌ها را به برنامه‌های اصالت‌سنجی‌شده ارائه می‌دهد. در زمان تولید، Edge آن نشان‌ها و کدها را ذخیره می‌کند. بعداً، وقتی Edge درخواست‌های ورودی API حاوی این کدها یا نشان‌ها را دریافت می‌کند، Edge از اطلاعات ذخیره‌شده برای مجاز کردن درخواست‌ها استفاده می‌کند.

وقتی Edge این آرتیفکت‌های OAuth را تولید می‌کند، فراداده را نیز به کد یا کد پیوست می‌کند. برای مثال، یک کد دسترسی با جفت‌های نام/مقدار که زمان انقضا، برنامه و توسعه‌دهنده مرتبط، و اطلاعات دیگر را تعریف می‌کنند، مرتبط است.

نمایش JSON کد دسترسی Edge به‌صورت زیر است:

{
  "issued_at" : "1372170159093",
  "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[Product1,Product2]",
  "api_product_list_json" : ["Product1", "Product2"],
  "expires_in" : "3599", //--in seconds
  "developer.email" : "joe@weathersample.com",
  "organization_id" : "0",
  "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe",
  "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND",
  "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp",
  "organization_name" : "apifactory",
  "refresh_count" : "0"
}

افزودن «ویژگی‌های سفارشی» به کدهای OAuth

گاهی اوقات مفید است که فراداده سفارشی را به یک کد دسترسی پیوست کنید. برای مثال، ممکن است بخواهید نام کاربری، عضویت‌های گروه، یا نقش‌های کاربر، شناسه مشتری، شناسه جلسه، یا اطلاعات اختیاری دیگری را به یک کد اضافه کنید. در Apigee Edge، این داده‌ها «مشخصه‌های سفارشی» نامیده می‌شوند. متعاقباً، وقتی کد در محدوده درخواست API درستی‌سنجی می‌شود، آن داده ازطریق متغیرهای زمینه‌ای دردسترس پراکسی API قرار می‌گیرد. «پراکسی میانای برنامه‌سازی کاربردی» می‌تواند براساس داده‌های سفارشی که به کد پیوست شده است، تصمیمات مربوط به مجوز یا مسیریابی دقیق بگیرد.

برای پیوست کردن داده‌های اختیاری به یک کد، از عنصر <Attributes> در خط‌مشی OAuthV2 استفاده کنید. می‌توانید نام مشخصه سفارشی و مقداری را که باید داشته باشد مشخص کنید. برای مثال، در اینجا پیکربندی خط‌مشی‌ای وجود دارد که کد تولید می‌کند و مشخصه سفارشی‌ای به‌نام «tenant_list» را به کد پیوست می‌کند:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>600000</ExpiresIn>
  <GenerateResponse />
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>request.queryparam.grant_type</GrantType>
  <Attributes> 
    <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/>
  </Attributes>
</OAuthV2>

می‌توانید چندین مشخصه سفارشی را مشخص کنید و آن‌ها را به‌طور ضمنی به کد مجوز (<Operation>GenerateAuthorizationCode</Operation>) یا به کد (<Operation>GenerateAccessToken</Operation>) در زمان تولید پیوست کنید.

وقتی display روی true (پیش‌فرض) تنظیم شود، مشخصه‌های سفارشی در پاسخ برگردانده می‌شود، جایی که ممکن است برنامه آن‌ها را ببیند یا به کاربر نهایی منتقل کند. وقتی display روی false تنظیم می‌شود، مشخصه‌های سفارشی در فروشگاه داده ذخیره می‌شود، اما در پیام پاسخ برگردانده نمی‌شود. در هر دو حالت، داده‌های سفارشی پس‌از درستی‌سنجی کد، در خط‌مشی‌های «پراکسی میانای برنامه‌سازی کاربردی» دردسترس است.

برای اطلاعات بیشتر درباره گزینه display نمایش یا پنهان کردن مشخصه‌های سفارشی در پاسخ.

دریافت کردن «مشخصه‌های سفارشی» در زمان اجرا

وقتی تماسی با OAuthV2/VerifyAccessToken برقرار می‌شود، Apigee Edge با جستجوی نشان در فروشگاه نشان، آن را درستی‌سنجی می‌کند. سپس Apigee Edge مجموعه‌ای از متغیرهای زمینه‌ای را که حاوی اطلاعاتی درباره کد است تکمیل می‌کند. این موارد عبارت‌اند از:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • expires_in //--در ثانیه
  • وضعیت
  • حوزه
  • apiproduct.name*

اگر کد دارای مشخصه‌های سفارشی باشد، آن مشخصه‌های سفارشی در متغیر زمینه‌ای با نام accesstoken.{custom_attribute} دردسترس قرار می‌گیرد. برای مثال، فرض کنید یک کد از خط‌مشی نشان‌داده‌شده در بالا صادر شده است. پس‌از درستی‌سنجی چنین نشانه‌ای، متغیر زمینه‌ای دیگری به‌نام accesstoken.tenant_list وجود خواهد داشت که حاوی مقداری است که در زمان تولید نشانه ذخیره شده است.

خط‌مشی‌ها یا شرایط می‌توانند به این متغیرها ارجاع دهند و رفتار را براساس مقادیر ذخیره‌شده در آن‌ها تغییر دهند.

تنظیم و به‌روزرسانی کردن مشخصه‌های سفارشی در زمان اجرا

در برخی‌از موقعیت‌ها، می‌خواهید «پراکسی میانای برنامه‌سازی کاربردی» شما فراداده منسوب به رمز دسترسی را در زمان اجرا و درحالی‌که تماس با میانای برنامه‌سازی کاربردی در Apigee Edge پردازش می‌شود به‌روز کند. برای کمک به این امر، Apigee خط‌مشی‌هایی برای دریافت و تنظیم مشخصه‌های کد ارائه می‌دهد. برای اطلاعات بیشتر، دریافت اطلاعات OAuth V2 خط‌مشی و تنظیم اطلاعات خط‌مشی OAuth V2 را ببینید.

در هریک از این خط‌مشی‌ها، عنصر AccessToken باید به متغیری اشاره کند که حاوی کد دسترسی است.

همچنین می‌توانید از «میاناهای برنامه‌سازی کاربردی Edge» برای به‌روزرسانی مشخصه‌های سفارشی پیوست‌شده به یک کد استفاده کنید. برای روش به‌روزرسانی کد دسترسی OAuth 2.0، مستندات میانای برنامه‌سازی کاربردی را ببینید.