استفاده از IDP خارجی با Edge management API

اصالت‌سنجی پایه یکی از روش‌های اصالت‌سنجی هنگام تماس با «میانای برنامه‌سازی کاربردی مدیریت Edge» است. برای مثال، می‌توانید درخواست curl زیر را به Edge management API ارسال کنید تا به اطلاعات سازمانتان دسترسی پیدا کنید:

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

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

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

پس‌از فعال کردن «ارائه‌دهنده هویت» خارجی برای اصالت‌سنجی، می‌توانید اصالت‌سنجی «پایه» را به‌صورت اختیاری غیرفعال کنید. اگر اصالت‌سنجی «پایه» را غیرفعال کنید، همه دستورگان‌ها (مثل Maven، پوسته، و apigeetool) که به فراخوان‌های Edge management API پشتیبان اصالت‌سنجی «پایه» متکی هستند دیگر کار نخواهند کرد. باید هرگونه فراخوانی API و دستورگانی را که از اصالت‌سنجی «پایه» برای انتقال دادن کدهای دسترسی OAuth2 در سرایند Bearer استفاده می‌کنند به‌روز کنید.

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

برنامه کمکی get_token اعتبارنامه‌های اصالت‌سنجی «پایه» شما (و در برخی موارد گذررمز) را با ژتون دسترسی و بازآوری OAuth2 مبادله می‌کند. برنامه کمکی get_token اعتبارنامه‌های شما را می‌پذیرد و یک کد دسترسی معتبر برمی‌گرداند. اگر کد قابل بازآوری باشد، ابزار آن را بازآوری می‌کند و برمی‌گرداند. اگر کد نوسازی منقضی شود، اطلاعات اعتباری کاربر درخواست می‌شود.

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

برای دریافت کد دسترسی OAuth2 برای انجام تماس‌های Edge management API:

  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 یا نام ساناد دستگاه میزبان واحد Apigee SSO است. اگر «امنیت لایه انتقال» را در Apigee SSO پیکربندی کرده‌اید، از https و شماره درگاه صحیح «امنیت لایه انتقال» استفاده کنید.

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

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

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

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

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

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

    این درخواست گذرنویسه یکبارمصرفی را برمی‌گرداند که تا زمانی که آن نشانی وب را برای دریافت گذرنویسه جدید بازآوری کنید یا از گذرنویسه با get_token برای تولید کردن رمز دسترسی استفاده کنید معتبر می‌ماند.

    توجه داشته باشید که فقط هنگام اصالت‌سنجی با SAML IDP می‌توانید از گذررمز استفاده کنید. نمی‌توانید از گذررمز برای اصالت‌سنجی با «ارائه‌دهنده هویت» LDAP استفاده کنید.

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

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

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

    get_token -u EMAIL_ADDRESS -p PASSCODE

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

  7. گذراندن کد دسترسی به یک فراخوانی Edge management API به‌عنوان سرایند 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) پس‌از منقضی شدن کد بازآوری، get_token از شما گذرواژه جدیدی می‌خواهد. قبل‌از اینکه بتوانید رمز عبور جدیدی تولید کنید، باید به نشانی وب نشان‌داده‌شده در مرحله ۳ در بالا پیمایش کنید و رمز عبور جدیدی تولید کنید.

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

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

تنها تفاوت بین فراخوانی‌های «میانای برنامه‌سازی کاربردی» مستندشده در استفاده از امنیت OAuth2 با «میانای برنامه‌سازی کاربردی مدیریت Apigee Edge» این است که نشانی وب فراخوانی باید به نام منطقه شما ارجاع دهد. علاوه‌براین، برای تولید کردن کد دسترسی اولیه با SAML IDP، باید گذرنویسه را، همان‌طور که در مرحله ۳ رویه بالا نشان داده شده است، اضافه کنید.

برای صدور مجوز، اعتبارنامه کارخواه 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 به گذرنویسه موقت نیاز دارد، اما «ارائه‌دهنده هویت» 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'