فعال کردن بازیابی و لغو نشانه‌های دسترسی OAuth 2.0 با شناسه کاربر نهایی، شناسه برنامه یا هر دو

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

این بخش نحوه فعال کردن بازیابی و لغو نشانه‌های دسترسی OAuth 2.0 توسط شناسه کاربر نهایی، شناسه برنامه یا هر دو را شرح می‌دهد. ویژگی ID کاربر نهایی به تنظیمات خاصی نیاز دارد که در این مبحث توضیح داده شده است. منظور ما از کاربر نهایی، کاربر اپلیکیشنی است که در حال فراخوانی API است.

چه زمانی باید دسترسی به شناسه کاربر نهایی را فعال کرد

گاهی اوقات، ذخیره شناسه کاربر در یک نشانه دسترسی مفید است. ویژگی دسترسی به شناسه کاربر نهایی را فقط در صورتی فعال کنید که مورد خوبی برای آن دارید. به عنوان مثال:

  • قابلیتی برای وب سایت یا برنامه شما که در آن کاربران می توانند برنامه های شخص ثالثی را که مجاز کرده اند ببینند و گزینه ای برای لغو دسترسی به آن برنامه ها ارائه دهند.
  • قابلیتی که به کاربر مجاز اجازه می دهد تا تمام نشانه های دسترسی مرتبط با یک برنامه توسعه دهنده خاص را لغو کند.

درباره نشانه‌های دسترسی OAuth

شناسه های برنامه به طور خودکار به نشانه دسترسی OAuth اضافه می شوند. بنابراین، پس از فعال کردن دسترسی توکن برای یک سازمان همانطور که در زیر توضیح داده شده است، می توانید نشانه های دسترسی را با شناسه برنامه لغو کنید.

برای بازیابی و لغو نشانه‌های دسترسی OAuth 2.0 توسط شناسه کاربر نهایی، یک شناسه کاربر نهایی باید در نشانه‌های دسترسی وجود داشته باشد. روش زیر نحوه افزودن شناسه کاربر نهایی را به یک توکن موجود توضیح می دهد.

به‌طور پیش‌فرض، زمانی که Edge یک نشانه دسترسی OAuth 2.0 تولید می‌کند، توکن دارای فرمت زیر است:

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

به موارد زیر توجه کنید:

  • فیلد application_name حاوی UUID برنامه مرتبط با توکن است. اگر بازیابی و لغو نشانه‌های دسترسی OAuth 2.0 را با شناسه برنامه فعال کنید، این شناسه برنامه‌ای است که استفاده می‌کنید.
  • فیلد access_token حاوی مقدار توکن دسترسی OAuth 2.0 است.

فیلدی برای شناسه کاربر نهایی در نشانه دسترسی پیش‌فرض OAuth وجود ندارد. برای فعال کردن بازیابی و ابطال نشانه‌های دسترسی OAuth 2.0 توسط شناسه کاربر نهایی، باید سیاست OAuth 2.0 را طوری پیکربندی کنید که شناسه کاربر را در توکن لحاظ کنید، همانطور که در روش زیر توضیح داده شده است. توجه داشته باشید که اگر فقط می‌خواهید نشانه‌های دسترسی OAuth 2.0 را با شناسه برنامه بازیابی و لغو کنید، دیگر نیازی به فعال کردن دسترسی با شناسه کاربر نهایی نیست.

شناسه کاربر نهایی را به نقطه پایانی ایجاد توکن ارسال می کنید. شما می توانید شناسه کاربر نهایی را به عنوان یک پارامتر پرس و جو، پارامتر فرم یا در یک هدر (همانطور که بعدا در این مبحث توضیح داده شد) ارسال کنید. بعد از اینکه Edge را برای گنجاندن شناسه کاربر نهایی در توکن پیکربندی کردید، همانطور که در زیر نشان داده شده است، به عنوان فیلد app_enduser درج می شود:

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "app_enduser" : "6ZG094fgnjNf02EK",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

برای یادگیری نحوه برقراری تماس‌های API که این بازیابی و لغو را انجام می‌دهند، به Smart Docs زیر مراجعه کنید:

فعال کردن دسترسی به نشانه‌های OAuth 2.0 با شناسه کاربر و شناسه برنامه

نحوه فعال کردن دسترسی به نشانه‌های OAuth 2.0 با شناسه کاربری و شناسه برنامه بستگی به نحوه استقرار Edge دارد:

  • استقرار مبتنی بر ابر

    استقرار Edge مبتنی بر ابر به این معنی است که بیشتر پیکربندی توسط Apigee اداره می شود. شما فقط مسئول پیکربندی خط مشی OAuth 2.0 برای افزودن شناسه کاربری به نشانه دسترسی هستید. برای اطلاعات بیشتر، روش زیر را ببینید.

  • Edge برای استقرار Private Cloud

    در Apigee Edge for Private Cloud (در محل)، شما کاملاً مسئول پیکربندی هستید. برای اطلاعات بیشتر، عملیات و پیکربندی را ببینید.

  • هیبرید Apigee

    دسترسی به نشانه های OAuth 2.0 توسط شناسه کاربری به طور پیش فرض فعال است. شما فقط مسئول پیکربندی خط مشی OAuth 2.0 برای افزودن شناسه کاربری به نشانه دسترسی هستید. برای اطلاعات بیشتر، مرحله 5 روش زیر را ببینید.

فعال کردن دسترسی در فضای ابری

مرحله 1: یک سازمان را برای پشتیبانی از این ویژگی فعال کنید

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

با پشتیبانی Apigee Edge تماس بگیرید تا سازمان شما را به روز کنند.

مرحله 2: مجوزهای منبع oauth2 را به نقش های opsadmin و orgadmin ارائه دهید

فقط به نقش‌های orgadmin و opsadmin شما باید مجوزهایی داده شود تا این تماس‌ها را برای بازیابی ( get ) و لغو ( put ) بر اساس شناسه کاربر نهایی یا شناسه برنامه با منبع oauth2 انجام دهند.

می‌توانید از دریافت مجوز برای یک فراخوان API منبع استفاده کنید تا ببینید کدام نقش‌ها مجوزهایی برای منبع oauth2 get put

اگر نیاز به افزودن یا حذف مجوزها دارید، با پشتیبانی Apigee Edge تماس بگیرید تا به‌روزرسانی‌ها را انجام دهند.

مرحله 3: توکن های دسترسی OAuth 2.0 موجود را در گره های Cassandra خود کپی کنید

انجام شده توسط Apigee Support : در این کار، کپی هایی از نشانه های دسترسی OAuth 2.0 موجود در ارگ های تحت تاثیر کپی و در گره های Cassandra شما ذخیره می شود. این روش بر روی گره های Cassandra برای هر یک از غلاف های Apigee Edge شما انجام خواهد شد. این به بازیابی و لغو تماس‌های API اجازه می‌دهد تا در برابر تمام نشانه‌های دسترسی OAuth 2.0 شما، موجود و تازه ایجاد شده، اجرا شوند.

مرحله 4: ویژگی oauth_max_search_limit را به سرور مدیریت و پردازشگر پیام خود اضافه کنید

در این کار، فایل‌های keymanagement.properties برای سرور مدیریت و پردازشگر پیام شما به‌روزرسانی می‌شوند تا شامل این ویژگی باشد: oauth_max_search_limit = 100 . 100 مقدار توصیه شده Apigee است، اما می تواند به دلخواه تنظیم شود.

با پشتیبانی Apigee Edge تماس بگیرید تا از آنها بخواهید این اضافه را انجام دهند.

مرحله 5: یک خط مشی OAuth 2.0 را برای ایجاد نشانه های دسترسی که شامل شناسه های کاربر نهایی هستند، پیکربندی کنید.

خط‌مشی OAuth 2.0 را که برای تولید نشانه‌های دسترسی استفاده می‌شود، پیکربندی کنید تا شناسه کاربر نهایی را در رمز قرار دهد. با گنجاندن شناسه‌های کاربر نهایی در توکن‌های دسترسی، می‌توانید بازیابی و ابطال‌ها را با شناسه کاربر نهایی انجام دهید.

برای پیکربندی خط مشی برای گنجاندن شناسه کاربر نهایی در یک نشانه دسترسی، باید متغیر ورودی حاوی شناسه کاربر نهایی را مشخص کنید. از تگ <AppEndUser> برای تعیین متغیر استفاده کنید.

خط مشی OAuth 2.0 زیر، با نام GenerateAccessTokenClient ، یک نشانه دسترسی OAuth 2.0 ایجاد می کند. به اضافه شدن تگ <AppEndUser> به صورت پررنگ توجه کنید:

<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient">
  <DisplayName>OAuth 2.0.0 1</DisplayName>
  <ExternalAuthorization>false</ExternalAuthorization>
  <Operation>GenerateAccessToken</Operation>
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GenerateResponse enabled="true"/>
  <GrantType>request.queryparam.grant_type</GrantType>
  <AppEndUser>request.header.appuserID</AppEndUser>
  <ExpiresIn>960000</ExpiresIn>
</OAuthV2>

سپس می توانید از دستور cURL زیر برای تولید نشانه دسترسی OAuth 2.0 استفاده کنید و شناسه کاربر را به عنوان سربرگ appuserID ارسال کنید:

curl -H "appuserID:6ZG094fgnjNf02EK" /
  https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials /
  -X POST /
  -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'

در این مثال، appuserID به عنوان هدر درخواست ارسال می شود. شما می توانید اطلاعات را به عنوان بخشی از یک درخواست به طرق مختلف منتقل کنید. به عنوان مثال، به عنوان یک جایگزین، می توانید:

  • از متغیر پارامتر فرم استفاده کنید: request.formparam.appuserID
  • از یک متغیر جریان استفاده کنید که شناسه کاربر نهایی را ارائه می کند