موضوعات پیشرفته OAuth 2.0

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

استفاده از کدهای OAuth طرف سوم

به استفاده از کدهای OAuth طرف سوم مراجعه کنید.

تعیین کردن چندین نشانی وب برگشتی

هنگام استفاده از نوع اعطای کد مجوز، باید هنگام ثبت برنامه توسعه‌دهنده، نشانی وب تماس برگشتی را مشخص کنید. نشانی وب تماس برگشتی معمولاً نشانی وب برنامه‌ای را مشخص می‌کند که برای دریافت کد مجوز ازطرف برنامه مشتری تعیین شده است. علاوه‌براین، از این رشته نشانی وب برای اعتبارسنجی استفاده می‌شود. وقتی مشتری کدهای مجوز و کدهای دسترسی را درخواست می‌کند، باید این نشانی اینترنتی را به Apigee Edge ارسال کند و پارامتر redirect_uri باید با نشانی اینترنتی ثبت‌شده مطابقت داشته باشد. همچنین درخواست کردن کد‌های مجوز و کدهای دسترسی را ببینید.

برای مثال:

http://myorg-test.apigee.net/weather/oauth/authorizationcode?client_id=123456&response_type=code&redirect_uri=http://example.com/callback&scope=scope1%20scope2&state=abc

مورد استفاده‌ای برای مشخص کردن چندین نشانی وب برگشتی در یک برنامه پراکسی وجود دارد. برای مثال، ممکن است بخواهید برای چندین دامنه اصالت‌سنجی کنید. برای نمونه:

  • http://myexample.com/callback
  • http://myexample.uk/callback
  • http://myexample.ja/callback

وقتی برنامه توسعه‌دهنده ثبت می‌شود، Edge از مشخص کردن چند نشانی وب برگشتی یا استفاده از نویسه‌های عام پشتیبانی نمی‌کند. برای انجام این مورد استفاده، می‌توانید هنگام ثبت برنامه توسعه‌دهنده، نشانی وب تماس برگشتی خالی مشخص کنید، و سپس منطقی را در خط‌مشی جاوا اسکریپت قرار دهید تا نشانی‌های وب هدایت ورودی را اعتبارسنجی کند.

تغییر رفتار پیش‌فرض عملیات GenerateAuthCode

به‌طور پیش‌فرض، عملیات GenerateAuthCode خط‌مشی OAuthV2 یک هدایت ۳۰۲ به نشانی وب بازخوانی با پارامتر پُرسمان ?code حاوی کد مجوز برمی‌گرداند.

در برخی موارد، ممکن است بخواهید این رفتار را تغییر دهید. برای مثال، ممکن است بخواهید پاسخ 200 را با JSON ساختاریافته حاوی کد برگردانید.

یکی از راه‌های انجام این مورد استفاده، تنظیم کردن دارایی GenerateResponse خط‌مشی OAuthV2 روی false است. از خط‌مشی ExtractVariable برای دریافت مقدار کد مجوز از متغیر oauthv2authcode.{policy_name}.code استفاده کنید. سپس می‌توانید از خط‌مشی AssignMessage برای برگرداندن کد در یک بار JSON با وضعیت 200 استفاده کنید.

موافقت کاربر نهایی برنامه درحال ممیزی است

ممکن است لازم باشد تأیید کنید که کاربر نهایی برنامه به برنامه اجازه داده است. برای انجام این کار می‌توانید از Apigee Edge Audit API استفاده کنید.

نمونه OAuth خروجی

نمونه outbound-oauth را در مخزن Apigee api-platform-samples در GitHub ببینید. می‌توانید نمونه را شبیه‌سازی کنید، آن را مستقر کنید، و آن را اجرا کنید. این نمونه از Microsoft Azure translator API برای ترجمه کردن توییت‌ها استفاده می‌کند. برای انجام این کار، تماس خروجی برقرار می‌کند تا یک کد دسترسی OAuth دریافت کند، و سپس کد را بااستفاده از خط‌مشی‌های ذخیره کردن در حافظه نهان «خدمات API» در حافظه نهان ذخیره می‌کند و هر بار که تماس خروجی برقرار می‌شود از کد ذخیره‌شده در حافظه نهان استفاده می‌کند. همچنین، شامل برنامه مرورگر نمایشی است که برای فراخوانی پراکسی API استفاده می‌شود.