استفاده از SAML با API مدیریت Edge

Edge for Private Cloud نسخه 4.17.09

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

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

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

curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName

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

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

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

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

روش زیر نحوه استفاده از get_token برای به دست آوردن یک نشانه دسترسی 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 دستگاه میزبان ماژول Edge SSO است. اگر TLS را روی Edge SSO پیکربندی کرده اید، از https و شماره پورت TLS صحیح استفاده کنید.

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

    از گزینه -b برای تعیین مکان متفاوت استفاده کنید:

    ./install -b path
  4. متغیر محیطی SSO_LOGIN_URL را به URL ورود به سیستم خود تنظیم کنید، به شکل:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

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

  5. در یک مرورگر، برای دریافت یک رمز عبور یک بار مصرف، به URL زیر بروید:
    http://edge_sso_IP_DNS:9099/passcode

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

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

  6. برای به دست آوردن نشانه دسترسی OAuth2 get_token فراخوانی کنید:
    get_token -u emailAddress

    که در آن emailAddress آدرس ایمیل یک کاربر Edge است. از شما خواسته می شود گذرواژه یکبار مصرفی را که در مرحله 3 به دست آورده اید وارد کنید:

    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
          Enter the passcode if SAML is enabled or press ENTER:

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

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

    get_token -u emailAddress -p passcode
    وارد کنید.
  7. رمز دسترسی را به یک فراخوان API مدیریت Edge به عنوان هدر حامل ارسال کنید:
    curl -H "Authorization: Bearer access_token"
    https://ms_IP:8080/v1/organizations/orgName

    پس از اینکه برای اولین بار یک نشانه دسترسی جدید به دست آوردید، می توانید آن را به دست آورید و آن را در یک دستور به یک فراخوانی API ارسال کنید، همانطور که در زیر نشان داده شده است:

    header=`get_token` &&
    curl -H "Authorization: Bearer $header"
    https://ms_IP:8080/v1/o/orgName

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

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

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

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

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

به عنوان مثال، از فراخوانی 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'

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

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

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=refreshToken'