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

Edge for Private Cloud نسخه ۴.۱۹.۰۱

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

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

در این مثال، از گزینه cURL -u برای ارسال اطلاعات کاربری Basic Auth استفاده می‌کنید. همچنین می‌توانید یک کد OAuth2 را در سرصفحه Bearer ارسال کنید تا فراخوانی‌های میانای برنامه‌سازی کاربردی مدیریت Edge را انجام دهید. برای مثال:

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

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

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

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

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

روال زیر نحوه استفاده از get_token را برای دریافت کد دسترسی 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 نام DNS دستگاهی است که ماژول 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

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

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

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

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


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

    می‌توانید گذرنویسه را در خط فرمان بااستفاده از فرمان get_token در این قالب وارد کنید:
    > get_token -u emailAddress -p passcode
  7. کد دسترسی را به‌عنوان سرصفحه Bearer به فراخوانی Edge management API ارسال کنید:
    > 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 حاوی دستورالعمل‌هایی است که نحوه استفاده از میانای برنامه‌سازی کاربردی مدیریت Edge را برای دریافت و بازآوری کردن ژتون‌ها نشان می‌دهد. همچنین می‌توانید از تماس‌های Edge API برای نشان‌های تولیدشده از ادعاهای SAML استفاده کنید.

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

برای مثال، از فراخوانی میانای برنامه‌سازی کاربردی زیر برای تولید دسترسی اولیه و بازآوری ژتون‌ها استفاده کنید:

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 رزروشده را در سرصفحه مجوز ارسال کنید. این فراخوانی، ژتون‌های دسترسی و بازآوری را در صفحه چاپ می‌کند.

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

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'