احراز هویت اولیه یکی از راههای احراز هویت هنگام برقراری تماس با API مدیریت Edge است. به عنوان مثال، میتوانید برای دسترسی به اطلاعات سازمان خود، درخواست curl
زیر را به API مدیریت Edge ارسال کنید:
curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
در این مثال، شما از گزینه curl
-u
برای ارسال اعتبارنامه های احراز هویت اولیه استفاده می کنید. از طرف دیگر، میتوانید یک توکن OAuth2 را در هدر Bearer
برای برقراری تماسهای API مدیریت Edge ارسال کنید، همانطور که مثال زیر نشان میدهد:
curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
بعد از اینکه یک IDP خارجی را برای احراز هویت فعال کردید، می توانید به صورت اختیاری احراز هویت پایه را غیرفعال کنید. اگر احراز هویت پایه را غیرفعال کنید، همه اسکریپتها (مانند Maven، shell، و apigeetool
) که به فراخوانهای API مدیریت Edge متکی هستند و از احراز هویت پایه پشتیبانی میکنند، دیگر کار نمیکنند. شما باید هر تماس و اسکریپت API را که از احراز هویت اولیه برای ارسال نشانه های دسترسی OAuth2 در هدر Bearer
استفاده می کند، به روز کنید.
توکن ها را با get_token دریافت و به روز کنید
ابزار get_token
اعتبار احراز هویت اولیه شما (و در برخی موارد یک رمز عبور) را برای دسترسی OAuth2 و توکن تازهسازی مبادله میکند. ابزار get_token
اعتبار شما را می پذیرد و یک رمز دسترسی معتبر را برمی گرداند. اگر رمزی را بتوان رفرش کرد، ابزار آن را تازه می کند و برمی گرداند. اگر توکن بهروزرسانی منقضی شود، اعتبار کاربر را درخواست میکند.
ابزار get_token
توکنها را روی دیسک ذخیره میکند و در صورت نیاز برای استفاده آماده است. همچنین یک نشانه دسترسی معتبر به stdout
چاپ می کند. از آنجا، میتوانید از یک افزونه مرورگر مانند Postman استفاده کنید یا آن را در یک متغیر محیطی برای استفاده در curl
جاسازی کنید.
برای به دست آوردن یک نشانه دسترسی OAuth2 برای برقراری تماس های API مدیریت 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 یا نام DNS دستگاه میزبان ماژول Apigee SSO است. اگر TLS را روی Apigee SSO پیکربندی کرده اید، از
https
و شماره پورت TLS صحیح استفاده کنید. - همانطور که در مثال زیر نشان داده شده است، بسته
ssocli-bundle.zip
را از حالت فشرده خارج کنید:unzip ssocli-bundle.zip
- همانطور که در مثال زیر نشان داده شده است،
get_token
در/usr/local/bin
نصب کنید:./install -b PATH
گزینه
-b
مکان دیگری را مشخص می کند. - متغیر محیطی
SSO_LOGIN_URL
را به شکل زیر روی URL ورود به سیستم خود تنظیم کنید:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
جایی که EDGE_SSO_IP_DNS آدرس IP دستگاه میزبان ماژول Apigee SSO است. اگر TLS را روی Apigee SSO پیکربندی کرده اید، از
https
و شماره پورت TLS صحیح استفاده کنید. - (فقط SAML) در یک مرورگر، به URL زیر بروید تا یک رمز عبور یک بار مصرف دریافت کنید:
http://EDGE_SSO_IP_DNS:9099/passcode
اگر TLS را روی Apigee SSO پیکربندی کرده اید، از
https
و شماره پورت TLS صحیح استفاده کنید.این درخواست رمز عبور یک بار مصرفی را برمی گرداند که تا زمانی که آن URL را برای به دست آوردن یک رمز عبور جدید بازخوانی نکنید یا از رمز عبور با
get_token
برای ایجاد یک رمز دسترسی استفاده کنید، معتبر باقی می ماند.توجه داشته باشید که فقط هنگام احراز هویت با SAML IDP می توانید از رمز عبور استفاده کنید. برای احراز هویت با LDAP IDP نمی توانید از رمز عبور استفاده کنید.
- همانطور که در مثال زیر نشان داده شده است،
get_token
برای دریافت نشانه دسترسی OAuth2 فراخوانی کنید:get_token -u EMAIL_ADDRESS
جایی که EMAIL_ADDRESS آدرس ایمیل یک کاربر Edge است.
(فقط SAML) همانطور که در مثال زیر نشان داده شده است، علاوه بر آدرس ایمیل، رمز عبور را در خط فرمان وارد کنید:
get_token -u EMAIL_ADDRESS -p PASSCODE
ابزار
get_token
نشانه دسترسی OAuth2 را دریافت میکند، آن را روی صفحه چاپ میکند و آن را مینویسد و توکن refresh را در~/.sso-cli
مینویسد. - همانطور که در مثال زیر نشان داده شده است، رمز دسترسی را به عنوان هدر
Bearer
به یک فراخوانی API مدیریت Edge ارسال کنید:curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- همانطور که در مثال زیر نشان می دهد، پس از دریافت یک نشانه دسترسی جدید برای اولین بار، می توانید نشانه دسترسی را دریافت کرده و آن را در یک دستور به یک فراخوانی API ارسال کنید:
header=`get_token` && curl -H "Authorization: Bearer $header" https://MS_IP:8080/v1/o/ORG_NAME
با این فرم از دستور، اگر نشانه دسترسی منقضی شده باشد، به طور خودکار تا زمانی که نشانه رفرش منقضی شود، رفرش می شود.
(فقط SAML) پس از انقضای توکن refresh، get_token
از شما می خواهد یک رمز عبور جدید را دریافت کنید. قبل از اینکه بتوانید یک نشانه دسترسی OAuth جدید ایجاد کنید، باید به URL نشان داده شده در بالا در مرحله 3 بروید و یک رمز عبور جدید ایجاد کنید.
از API مدیریت برای دریافت و بهروزرسانی نشانهها استفاده کنید
استفاده از امنیت OAuth2 با Apigee Edge مدیریت API نشان می دهد که چگونه از API مدیریت Edge برای به دست آوردن و به روز کردن توکن ها استفاده کنید. همچنین میتوانید از فراخوانهای Edge API برای دریافت نشانههای تولید شده از اظهارات SAML استفاده کنید.
تنها تفاوت بین تماسهای API مستند شده در استفاده از امنیت OAuth2 با API مدیریت Apigee Edge این است که URL تماس باید به نام منطقه شما اشاره کند. علاوه بر این، برای تولید رمز دسترسی اولیه با SAML IDP، باید رمز عبور را وارد کنید، همانطور که در مرحله 3 روش بالا نشان داده شده است.
برای مجوز، یک اعتبار مشتری رزرو شده 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 به یک رمز عبور موقت نیاز دارد، در حالی که یک IDP LDAP نیازی به رمز عبور ندارد.
یک نشانه دسترسی را بازخوانی کنید
برای بازخوانی نشانه دسترسی، از فراخوانی زیر که شامل نشانه رفرش است استفاده کنید:
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'