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

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

درباره فراداده توکن

Apigee Edge توکن‌های دسترسی OAuth، توکن‌های refresh و کدهای مجوز را تولید می‌کند و آنها را به برنامه‌های احراز هویت شده ارائه می‌دهد. در زمان تولید، 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 قرار می‌گیرند. یک پروکسی 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 تنظیم شده باشد، ویژگی‌های سفارشی در مخزن داده‌ها ذخیره می‌شوند، اما در پیام پاسخ بازگردانده نمی‌شوند. در هر دو حالت، داده‌های سفارشی پس از تأیید توکن، برای سیاست‌های درون API Proxy در دسترس هستند.

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

دریافت ویژگی‌های سفارشی در زمان اجرا

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

  • نام_سازمان
  • شناسه توسعه‌دهنده
  • نام برنامه‌نویس
  • شناسه_مشتری
  • grant_type
  • token_type
  • access_token
  • issued_at
  • expires_in //--ثانیه
  • وضعیت
  • محدوده
  • نام محصول API*

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

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

تنظیم و به‌روزرسانی ویژگی‌های سفارشی در زمان اجرا

در برخی شرایط، شما می‌خواهید که پروکسی API شما، فراداده‌های مرتبط با یک توکن دسترسی را در زمان اجرا، در حالی که یک فراخوانی API در Apigee Edge در حال پردازش است، به‌روزرسانی کند. برای کمک به این امر، Apigee سیاست‌هایی را برای دریافت و تنظیم ویژگی‌های توکن ارائه می‌دهد. برای اطلاعات بیشتر، به سیاست Get OAuth V2 Info و سیاست Set OAuth V2 Info مراجعه کنید.

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

همچنین می‌توانید از APIهای Edge برای به‌روزرسانی ویژگی‌های سفارشی متصل به یک توکن استفاده کنید. برای روش Update OAuth 2.0 Access Token به مستندات API مراجعه کنید.