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

اصالت‌سنجی پایه یکی از روش‌های اصالت‌سنجی هنگام برقراری تماس با Edge management API است. برای مثال، می‌توانید درخواست 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

پس‌از فعال کردن IDP خارجی برای اصالت‌سنجی، می‌توانید به‌صورت اختیاری اصالت‌سنجی «پایه» را غیرفعال کنید. اگر اصالت‌سنجی «پایه» را غیرفعال کنید، همه اسکریپت‌ها (مانند Maven،‏ shell، و apigeetool) که به فراخوانی‌های Edge management 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» پیکربندی کرده‌اید، از 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» پیکربندی کرده‌اید، از https و شماره درگاه صحیح «امنیت لایه انتقال» استفاده کنید.

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

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

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

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

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

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

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

    get_token -u EMAIL_ADDRESS -p PASSCODE

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

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

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

(فقط SAML) پس‌از منقضی شدن ژتون بازآوری، get_token از شما می‌خواهد گذرنویسه جدیدی وارد کنید. باید به نشانی وب نشان‌داده‌شده در مرحله ۳ بالا بروید و گذرنویسه جدیدی تولید کنید تا بتوانید کد دسترسی OAuth جدیدی تولید کنید.

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

استفاده از امنیت OAuth2 با میانای برنامه‌سازی کاربردی مدیریت Apigee Edge نشان می‌دهد که چگونه از میانای برنامه‌سازی کاربردی مدیریت Edge برای دریافت و بازآوری ژتون‌ها استفاده کنید. همچنین می‌توانید از تماس‌های 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 IDP به گذرنویسه موقت نیاز دارد، درحالی‌که LDAP IDP به آن نیاز ندارد.

بازآوری کد دسترسی

برای بازآوری کردن کد دسترسی در آینده، از فراخوانی زیر که حاوی ژتون بازآوری است استفاده کنید:

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'