«اصالتسنجی پایه» یکی از روشهای اصالتسنجی هنگام تماس با Edge management API است. برای مثال، میتوانید درخواست cURL زیر را به Edge management API ارسال کنید تا به اطلاعات مربوط به سازمانتان دسترسی پیدا کنید:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
در این مثال، از گزینه cURL -u برای انتقال اطلاعات اعتباری «احراز هویت پایه» استفاده میکنید. یا میتوانید برای انجام تماسهای «میانای برنامهسازی کاربردی مدیریت Edge»، یک کد OAuth2 در سرایند حامل ارسال کنید. برای مثال:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
پساز فعال کردن SAML، میتوانید درصورت تمایل «اصالتسنجی پایه» را غیرفعال کنید. اگر «اصالتسنجی پایه» را غیرفعال کنید، همه اسکریپتهایی (اسکریپتهای Maven، اسکریپتهای پوسته، apigeetool، و غیره) که به فراخوانیهای Edge management API که از «اصالتسنجی پایه» پشتیبانی میکنند متکی هستند دیگر کار نخواهند کرد. باید همه تماسهای «میانای برنامهسازی کاربردی» و نوشتههای برنامهای را که از «احراز هویت پایه» برای انتقال کدهای دسترسی OAuth2 در سرایند «حامل» استفاده میکنند بهروزرسانی کنید.
استفاده از get_token برای دریافت و بازآوری کردن کدها
برنامه کمکی get_token اعتبارنامههای «اصالتسنجی پایه» و گذرواژه را با ژتون بازآوری و دسترسی OAuth2 مبادله میکند. برنامه کمکی get_token اطلاعات اعتباری شما را میپذیرد و کد دسترسی معتبری را چاپ میکند. اگر کد قابل بازآوری باشد، آن را بازآوری میکند و آن را چاپ میکند. اگر کد نوسازی منقضی شود، اطلاعات اعتباری کاربر درخواست میشود.
برنامه کمکی get_token نشانهها را روی دیسک ذخیره میکند تا درصورت نیاز آماده استفاده باشند. همچنین یک کد دسترسی معتبر در stdout چاپ میکند. از آنجا میتوانید از Postman استفاده کنید یا آن را در یک متغیر محیطی برای استفاده در curl جاسازی کنید.
روش زیر نحوه استفاده از get_token را برای دریافت کد دسترسی OAuth2 بهمنظور برقراری تماس با «میانای برنامهسازی کاربردی مدیریت Edge» شرح میدهد:
- بسته 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و شماره درگاه «امنیت لایه انتقال» صحیح استفاده کنید. - بسته
ssocli-bundle.zipرا از حالت فشرده خارج کنید:unzip ssocli-bundle.zip
- get_token را در
/usr/local/bin نصب کنید:
> ./install از گزینه -b برای مشخص کردن مکان متفاوت استفاده کنید: > ./install -b path - متغیر محیطی SSO_LOGIN_URL
را به نشانی وب ورود به سیستم خودتان، در قالب زیر، تنظیم کنید:
export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
که در آن edge_sso_IP_DNS نشانی IP نام ساناد ماشین میزبان واحد Edge SSO است. اگر «امنیت لایه انتقال» را در «شناسایی یگانه Edge» پیکربندی کردهاید، از https و شماره درگاه «امنیت لایه انتقال» صحیح استفاده کنید. - در مرورگر، برای دریافت گذرواژه یکبارمصرف به نشانی وب زیر بروید:
http://edge_sso_IP_DNS:9099/passcode
اگر «امنیت لایه انتقال» را در Edge SSO پیکربندی کردهاید، از https و شماره درگاه «امنیت لایه انتقال» صحیح استفاده کنید.
توجه: اگر درحالحاضر با ارائهدهنده هویت خود به سیستم وارد نشدهاید، از شما خواسته میشود به سیستم وارد شوید.
این نشانی وب گذرنویسه یکبارمصرفی برمیگرداند که تا زمانی که آن نشانی وب را برای دریافت گذرنویسه جدید بازآوری کنید یا از گذرنویسه با get_token برای تولید کردن کد دسترسی استفاده کنید معتبر است. - برای دریافت کد دسترسی 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 - گذراندن کد دسترسی به فراخوانی «میانای برنامهسازی کاربردی مدیریت Edge» بهعنوان سرایند «حامل»:
> curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
پساز اینکه برای اولینبار کد دسترسی جدیدی دریافت کردید، میتوانید کد دسترسی را دریافت کنید و آن را در یک فرمان واحد به فراخوانی «میانای برنامهسازی کاربردی» بگذرانید، همانطور که در زیر نشان داده شده است:
> header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
با این شکل فرمان، اگر کد دسترسی منقضی شده باشد، بهطور خودکار تا زمانی که کد بازآوری منقضی شود بازآوری میشود.
پساز منقضی شدن کد بازآوری، get_token از شما گذرواژه جدیدی میخواهد. قبلاز اینکه بتوانید نمودار دسترسی OAuth جدیدی تولید کنید، باید به نشانی وب نشاندادهشده در مرحله ۳ بروید و گذررمز جدیدی تولید کنید
استفاده از API مدیریت برای دریافت و بازآوری نشانها
استفاده از امنیت 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'