"المصادقة الأساسية" هي إحدى طرق المصادقة عند إجراء طلبات إلى واجهة برمجة التطبيقات Edge Management API. على سبيل المثال، يمكنك إجراء طلب cURL التالي إلى Management API لإدارة Edge للوصول إلى معلومات حول مؤسستك:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
في هذا المثال، يمكنك استخدام الخيار cURL -u لتمرير بيانات اعتماد المصادقة الأساسية. يمكنك بدلاً من ذلك تمرير رمز OAuth2 مميز في عنوان Bearer لإجراء طلبات بيانات من واجهة برمجة التطبيقات لإدارة Edge. على سبيل المثال:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
بعد تفعيل SAML، يمكنك إيقاف "المصادقة الأساسية" اختياريًا. في حال إيقاف "المصادقة الأساسية"، لن تعمل جميع النصوص البرمجية (نصوص Maven البرمجية ونصوص Shell البرمجية وapigeetool وما إلى ذلك) التي تعتمد على طلبات البيانات من واجهة برمجة التطبيقات لإدارة Edge التي تتيح "المصادقة الأساسية". يجب تعديل أي طلبات بيانات من واجهة برمجة التطبيقات والنصوص البرمجية التي تستخدم المصادقة الأساسية لتمرير رموز الدخول المميزة لبروتوكول OAuth2 في عنوان Bearer.
استخدام 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. إذا ضبطت بروتوكول أمان طبقة النقل (TLS) على Edge SSO، استخدِم
httpsورقم منفذ بروتوكول أمان طبقة النقل (TLS) الصحيح. - فك ضغط حزمة
ssocli-bundle.zip:unzip ssocli-bundle.zip
- ثبِّت get_token في
/usr/local/bin:
> ./install استخدِم الخيار -b لتحديد موقع جغرافي مختلف: > ./install -b path - اضبط متغيّر البيئة SSO_LOGIN_URL على عنوان URL لصفحة تسجيل الدخول، بالشكل التالي:
export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
حيث edge_sso_IP_DNS هو عنوان IP لاسم نظام أسماء النطاقات للجهاز الذي يستضيف وحدة الدخول المُوحَّد (SSO) في Edge. إذا أعددت بروتوكول أمان طبقة النقل (TLS) على Edge SSO، استخدِم https ورقم منفذ TLS الصحيح. - في المتصفّح، انتقِل إلى عنوان URL التالي للحصول على رمز مرور صالح لمرة واحدة:
http://edge_sso_IP_DNS:9099/passcode
إذا ضبطت بروتوكول أمان طبقة النقل (TLS) في Edge SSO، استخدِم https ورقم منفذ بروتوكول أمان طبقة النقل (TLS) الصحيح.
ملاحظة: إذا لم تكن مسجِّلاً الدخول حاليًا من خلال موفِّر الهوية، سيُطلب منك تسجيل الدخول.
يعرض عنوان URL هذا رمز مرور صالحًا لمرة واحدة يظل صالحًا إلى أن تتم إعادة تحميل عنوان URL هذا للحصول على رمز مرور جديد، أو إلى أن يتم استخدام رمز المرور مع get_token لإنشاء رمز دخول. - استدعِ get_token للحصول على رمز الدخول OAuth2:
> get_token -u emailAddress
حيث emailAddress هو عنوان البريد الإلكتروني لمستخدم Edge. سيُطلب منك إدخال رمز المرور الصالح لمرة واحدة الذي حصلت عليه في الخطوة 3:
رمز صالح لمرة واحدة ( يمكنك الحصول على رمز من خلال الرابط https://edge_sso_IP.com/passcode )
أدخِل رمز المرور في حال تفعيل SAML أو اضغط على ENTER:
أدخِل رمز المرور. تحصل الأداة المساعدة get_token على رمز الدخول المميز لبروتوكول OAuth2، وتطبعه على الشاشة، وتكتبه هو والرمز المميز لإعادة التحميل في ~/.sso-cli.
يمكنك إدخال رمز المرور في سطر الأوامر باستخدام الأمر get_token على النحو التالي:
> get_token -u emailAddress -p passcode - مرِّر رمز الدخول إلى طلب بيانات من واجهة برمجة التطبيقات لإدارة Edge كعنوان Bearer:
> 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 رمز مرور جديدًا. يجب الانتقال إلى عنوان URL الموضّح أعلاه في الخطوة 3 وإنشاء رمز مرور جديد قبل أن تتمكّن من إنشاء رمز دخول جديد لـ OAuth
استخدام Management API للحصول على الرموز المميّزة وإعادة تحميلها
استخدام أمان OAuth2 مع واجهة برمجة تطبيقات إدارة Apigee Edge يحتوي على تعليمات توضح كيفية استخدام واجهة برمجة تطبيقات إدارة Edge للحصول على الرموز المميزة وتحديثها. يمكنك أيضًا استخدام طلبات بيانات من واجهة برمجة التطبيقات في Edge للحصول على رموز مميّزة يتم إنشاؤها من تأكيدات SAML.
الفرق الوحيد بين طلبات البيانات من واجهة برمجة التطبيقات الموضّحة في استخدام أمان OAuth2 مع واجهة برمجة تطبيقات إدارة Apigee Edge هو أنّ عنوان URL للطلب يجب أن يشير إلى اسم منطقتك. بالإضافة إلى ذلك، لإنشاء رمز الدخول الأولي، يجب تضمين رمز المرور، كما هو موضّح في الخطوة 3 من الإجراء أعلاه.
على سبيل المثال، استخدِم طلب البيانات التالي من واجهة برمجة التطبيقات لإنشاء الرمز المميز الأوّلي للوصول والرمز المميز لإعادة التحميل:
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'