استفاده از ابزارهای get_token و acurl

‫Apigee ابزارهای get_token و acurl را برای ساده کردن تعامل با Apigee SSO و Edge management API ارائه می‌دهد. این ابزارها تولید، ذخیره در حافظه نهان، بازآوری، و تزریق کد را به‌طور خودکار انجام می‌دهند.

برنامه‌های کمکی در گره OpenLDAP در /opt/apigee/apigee-openldap/bin/ نصب شده‌اند.

ابزار get_token

ابزار get_token مسئول دریافت دسترسی OIDC/OAuth2 و ژتون‌های بازآوری است. این کتابخانه از دو جریان اصالت‌سنجی اصلی پشتیبانی می‌کند و شامل حافظه نهان نشان داخلی است.

جریان‌های اصالت‌سنجی

  • جریان کد دستگاه (RFC 8628): برای کاربران انسانی طراحی شده است که ازطریق «ارائه‌دهنده هویت» خارجی (مانند SAML،‏ Okta، یا OIDC) اصالت‌سنجی می‌کنند. اگر فقط نشانی ایمیل (-u <email>) را ارسال کنید، ابزار کمکی این جریان را آغاز می‌کند و از شما می‌خواهد نشانی وب و کد را در مرورگر تأیید کنید.
  • اعطای گذرواژه (ROPC): برای کاربران ماشین بدون سر و برنامه‌های خودکارسازی‌شده طراحی شده است. اگر هم نام کاربری و هم گذرواژه (-u <user>:<password>) را ارسال کنید، مستقیماً دربرابر Apigee SSO بدون تعامل با مرورگر اصالت‌سنجی می‌کند.

ذخیره کردن توکن در حافظه نهان و بازآوری خودکار

ابزار get_token به‌طور خودکار چرخه‌های حیات کد را مدیریت می‌کند تا مجبور نباشید زمان‌های انقضا را به‌صورت دستی ردیابی کنید:

  • بررسی حافظه نهان: وقتی فراخوانی می‌شود، get_token حافظه نهان محلی را در ~/.sso-cli/<username>-token.json بررسی می‌کند. اگر کد اصالت‌سنجی معتبری وجود داشته باشد و منقضی نشده باشد، بدون اصالت‌سنجی مجدد از آن کد استفاده می‌کند.
  • بازآوری خودکار: اگر کد دسترسی ذخیره‌شده در حافظه نهان منقضی شده باشد اما کد بازآوری معتبری وجود داشته باشد، این ابزار به‌طور خودکار کد بازآوری را در Apigee SSO با کد دسترسی جدیدی مبادله می‌کند.

متغیرهای محیطی

می‌توانید به‌طور اختیاری رفتار get_token را بااستفاده از متغیرهای محیطی زیر سفارشی‌سازی کنید:

  • ‫SSO_LOGIN_URL: نشانی وب Apigee SSO (پیش‌فرض: http://localhost:9099).
  • CLIENT_ID: شناسه کارخواه OAuth2 (پیش‌فرض: edgecli).
  • CLIENT_SECRET: رمز کارخواه OAuth2 (پیش‌فرض: edgeclisecret).

ابزار acurl

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

  • جداسازی آرگومان: این ابزار آرگومان -u <user:password> یا -u <user> را استخراج می‌کند و آن را به get_token منتقل می‌کند. همه متغیرهای مستقل دیگر (مثل -X، -H، -d، -v، -s) را مستقیماً به curl استاندارد بازارسال می‌کند.
  • اجرا: پس‌از دریافت یا بازیابی موفقیت‌آمیز یک کد معتبر از get_token، acurl به‌طور خودکار سرایند -H "Authorization: Bearer <token>" را به فراخوانی curl تزریق می‌کند.

مثال‌هایی از کاربرد

مثال ۱: ورود تعاملی به سیستم برای کاربر انسانی

/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations

این فرمان موقتاً متوقف می‌شود، از کاربر می‌خواهد برای اصالت‌سنجی ازطریق IDP خارجی خود به مرورگر مراجعه کند، و سپس پس‌از تأیید، فراخوانی API را اجرا می‌کند.

مثال ۲: ورود به سیستم بدون واسط کاربری برای کاربر ماشین

/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations

این فرمان مستقیماً ازطریق «اعطای گذرواژه» اصالت‌سنجی می‌کند و فراخوانی API را بلافاصله اجرا می‌کند.

مثال ۳: استفاده مجدد از کد ذخیره‌شده در حافظه نهان

/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users

چون کد در مراحل قبلی ذخیره شده است، نیازی نیست آرگومان -u را دوباره ارائه دهید. این ابزارک کد ذخیره‌شده در حافظه نهان را می‌خواند و آن را به‌طور خودکار تزریق می‌کند.