استفاده از SAML با Edge management API

Edge for Private Cloud v4.18.01

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

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

در این مثال، از گزینه cURL -u برای انتقال اطلاعات اعتباری «احراز هویت پایه» استفاده می‌کنید. یا می‌توانید کد OAuth2 را در سرایند حامل بگذرانید تا تماس‌های «میانای برنامه‌سازی کاربردی مدیریت Edge» را برقرار کنید. برای مثال:

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

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

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

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

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

روش زیر نحوه استفاده از get_token را برای دریافت کد دسترسی OAuth2 به‌منظور برقراری تماس با «میانای برنامه‌سازی کاربردی مدیریت 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 یا نام ساناد دستگاه میزبان واحد Edge SSO است. اگر «امنیت لایه انتقال» را در «شناسایی یگانه Edge» پیکربندی کرده‌اید، از https و شماره درگاه «امنیت لایه انتقال» صحیح استفاده کنید.
  2. فایل ssocli-bundle.zip دسته:
    > unzip ssocli-bundle.zip را از حالت فشرده خارج کنید
  3. get_token را در /usr/local/bin نصب کنید:
    > ./install از گزینه -b برای مشخص کردن مکان متفاوت استفاده کنید: > ./install -b path
  4. متغیر محیطی SSO_LOGIN_URL را به نشانی وب ورود به سیستم خود، در قالب زیر، تنظیم کنید:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    که در آن edge_sso_IP_DNS نشانی IP نام ساناد دستگاه میزبان واحد Edge SSO است. اگر «امنیت لایه انتقال» را در «شناسایی یگانه Edge» پیکربندی کرده‌اید، از https و شماره درگاه «امنیت لایه انتقال» صحیح استفاده کنید.
  5. در مرورگر، برای دریافت گذرواژه یک‌بارمصرف به نشانی وب زیر بروید:
    http://edge_sso_IP_DNS:9099/passcode

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

    توجه: اگر درحال‌حاضر با ارائه‌دهنده هویت خود به سیستم وارد نشده‌اید، از شما خواسته می‌شود به سیستم وارد شوید.

    این نشانی وب گذرنویسه یک‌بارمصرفی برمی‌گرداند که تا زمانی که آن نشانی وب را برای دریافت گذرنویسه جدید بازآوری کنید یا از گذرنویسه با get_token برای تولید کردن کد دسترسی استفاده کنید معتبر است.
  6. برای دریافت کد دسترسی OAuth2، get_token را فراخوانی کنید:
    > get_token -u emailAddress

    که در آن emailAddress نشانی ایمیل کاربر Edge است. از شما خواسته می‌شود گذرنویسه یک‌بارمصرفی را که در مرحله ۳ دریافت کردید وارد کنید:
    گذرنویسه یک‌بارمصرف ( دریافت گذرنویسه در https://edge_sso_IP.com/passcode )
    اگر SAML فعال است گذرنویسه را وارد کنید یا کلید «ورود» را فشار دهید:


    گذرنویسه را وارد کنید. ابزار get_token کد دسترسی OAuth2 را دریافت می‌کند، آن را روی صفحه چاپ می‌کند، و آن را به‌همراه کد بازآوری در ~/.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 جدیدی تولید کنید، باید به نشانی وب نشان‌داده‌شده در بالا در «مرحله ۳» بروید و گذرواژه جدیدی تولید کنید

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

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

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

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