از یک IDP خارجی با API مدیریت Edge استفاده کنید، از یک IDP خارجی با API مدیریت Edge استفاده کنید

احراز هویت اولیه یکی از راه‌های احراز هویت هنگام برقراری تماس با API مدیریت Edge است. به عنوان مثال، می‌توانید برای دسترسی به اطلاعات سازمان خود، درخواست curl زیر را به API مدیریت Edge ارسال کنید:

curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

در این مثال، شما از گزینه curl -u برای ارسال اعتبارنامه های احراز هویت اولیه استفاده می کنید. از طرف دیگر، می‌توانید یک توکن OAuth2 را در هدر Bearer برای برقراری تماس‌های API مدیریت Edge ارسال کنید، همانطور که مثال زیر نشان می‌دهد:

curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

بعد از اینکه یک IDP خارجی را برای احراز هویت فعال کردید، می توانید به صورت اختیاری احراز هویت پایه را غیرفعال کنید. اگر احراز هویت پایه را غیرفعال کنید، همه اسکریپت‌ها (مانند Maven، shell، و apigeetool ) که به فراخوان‌های API مدیریت Edge متکی هستند و از احراز هویت پایه پشتیبانی می‌کنند، دیگر کار نمی‌کنند. شما باید هر تماس و اسکریپت API را که از احراز هویت اولیه برای ارسال نشانه های دسترسی OAuth2 در Bearer استفاده می کند، به روز کنید.

توکن ها را با get_token دریافت و به روز کنید

ابزار get_token اعتبار احراز هویت اولیه شما (و در برخی موارد یک رمز عبور) را برای دسترسی OAuth2 و توکن تازه‌سازی مبادله می‌کند. ابزار get_token اعتبار شما را می پذیرد و یک رمز دسترسی معتبر را برمی گرداند. اگر رمزی را بتوان رفرش کرد، ابزار آن را تازه می کند و برمی گرداند. اگر توکن به‌روزرسانی منقضی شود، اعتبار کاربر را درخواست می‌کند.

ابزار get_token توکن‌ها را روی دیسک ذخیره می‌کند و در صورت نیاز برای استفاده آماده است. همچنین یک نشانه دسترسی معتبر به stdout چاپ می کند. از آنجا، می‌توانید از یک افزونه مرورگر مانند Postman استفاده کنید یا آن را در یک متغیر محیطی برای استفاده در curl جاسازی کنید.

برای به دست آوردن یک نشانه دسترسی OAuth2 برای برقراری تماس های API مدیریت Edge:

  1. بسته sso-cli را دانلود کنید:
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    جایی که EDGE_SSO_IP_DNS آدرس IP یا نام DNS دستگاه میزبان ماژول Apigee SSO است. اگر TLS را روی Apigee SSO پیکربندی کرده اید، از https و شماره پورت TLS صحیح استفاده کنید.

  2. بسته ssocli-bundle.zip را از حالت فشرده خارج کنید، همانطور که مثال زیر نشان می دهد:
    unzip ssocli-bundle.zip
  3. همانطور که مثال زیر نشان می دهد get_token در /usr/local/bin نصب کنید:
    ./install -b PATH

    گزینه -b مکان دیگری را مشخص می کند.

  4. متغیر محیطی SSO_LOGIN_URL را روی URL ورود به سیستم خود به شکل زیر تنظیم کنید:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    جایی که EDGE_SSO_IP_DNS آدرس IP دستگاه میزبان ماژول Apigee SSO است. اگر TLS را روی Apigee SSO پیکربندی کرده اید، از https و شماره پورت TLS صحیح استفاده کنید.

  5. (فقط SAML) در یک مرورگر، به URL زیر بروید تا یک رمز عبور یک بار مصرف دریافت کنید:
    http://EDGE_SSO_IP_DNS:9099/passcode

    اگر TLS را روی Apigee SSO پیکربندی کرده اید، از https و شماره پورت TLS صحیح استفاده کنید.

    این درخواست رمز عبور یک بار مصرفی را برمی گرداند که تا زمانی که آن URL را برای به دست آوردن یک رمز عبور جدید بازخوانی نکنید یا از رمز عبور با get_token برای ایجاد یک رمز دسترسی استفاده کنید، معتبر باقی می ماند.

    توجه داشته باشید که فقط هنگام احراز هویت با SAML IDP می توانید از رمز عبور استفاده کنید. برای احراز هویت با LDAP IDP نمی توانید از رمز عبور استفاده کنید.

  6. همانطور که مثال زیر نشان می دهد، get_token برای دریافت نشانه دسترسی OAuth2 فراخوانی کنید:
    get_token -u EMAIL_ADDRESS

    جایی که EMAIL_ADDRESS آدرس ایمیل یک کاربر Edge است.

    (فقط SAML) همانطور که در مثال زیر نشان داده شده است، علاوه بر آدرس ایمیل، رمز عبور را در خط فرمان وارد کنید:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    ابزار get_token نشانه دسترسی OAuth2 را دریافت می‌کند، آن را روی صفحه چاپ می‌کند و آن را می‌نویسد و توکن refresh را در ~/.sso-cli می‌نویسد.

  7. همانطور که در مثال زیر نشان داده شده است، رمز دسترسی را به فراخوانی API مدیریت Edge به عنوان هدر Bearer ارسال کنید:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. پس از اینکه برای اولین بار یک نشانه دسترسی جدید دریافت کردید، می توانید نشانه دسترسی را دریافت کرده و آن را در یک دستور به یک فراخوانی API ارسال کنید، همانطور که مثال زیر نشان می دهد:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    با این فرم از دستور، اگر نشانه دسترسی منقضی شده باشد، به طور خودکار تا زمانی که نشانه رفرش منقضی شود، رفرش می شود.

(فقط SAML) پس از انقضای توکن refresh، get_token از شما می خواهد یک رمز عبور جدید را دریافت کنید. قبل از اینکه بتوانید یک نشانه دسترسی OAuth جدید ایجاد کنید، باید به URL نشان داده شده در بالا در مرحله 3 بروید و یک رمز عبور جدید ایجاد کنید.

از API مدیریت برای دریافت و به‌روزرسانی نشانه‌ها استفاده کنید

استفاده از امنیت OAuth2 با Apigee Edge مدیریت API نشان می دهد که چگونه از API مدیریت Edge برای به دست آوردن و به روز کردن توکن ها استفاده کنید. همچنین می‌توانید از فراخوان‌های Edge API برای دریافت نشانه‌های تولید شده از اظهارات SAML استفاده کنید.

تنها تفاوت بین تماس‌های API مستند شده در استفاده از امنیت OAuth2 با API مدیریت Apigee Edge این است که URL تماس باید به نام منطقه شما اشاره کند. علاوه بر این، برای تولید رمز دسترسی اولیه با SAML IDP، باید رمز عبور را وارد کنید، همانطور که در مرحله 3 روش بالا نشان داده شده است.

برای مجوز، یک اعتبار مشتری رزرو شده OAuth2 را در هدر Authorization ارسال کنید. تماس، نشانه‌های دسترسی و تازه‌سازی را روی صفحه چاپ می‌کند.

یک نشانه دسترسی دریافت کنید

(LDAP) از فراخوانی API زیر برای ایجاد دسترسی اولیه و نشانه‌های تازه‌سازی استفاده کنید:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) از فراخوانی API زیر برای ایجاد دسترسی اولیه و نشانه‌های تازه‌سازی استفاده کنید:

curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
  -H "accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

توجه داشته باشید که احراز هویت با SAML IDP به یک رمز عبور موقت نیاز دارد، در حالی که یک IDP LDAP نیازی به رمز عبور ندارد.

یک نشانه دسترسی را بازخوانی کنید

برای بازخوانی نشانه دسترسی، از فراخوانی زیر که شامل نشانه رفرش است استفاده کنید:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
  https://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'