استخدام SAML مع واجهة برمجة تطبيقات إدارة Edge

Edge for Private Cloud، الإصدار 4.17.09

تُعد المصادقة الأساسية إحدى طرق المصادقة عند إجراء اتصالات بواجهة برمجة تطبيقات إدارة Edge. بالنسبة على سبيل المثال، يمكنك تقديم طلب cURL التالي إلى واجهة برمجة تطبيقات إدارة Edge للوصول إلى المعلومات حول مؤسستك:

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

في هذا المثال، يمكنك استخدام الخيار cURL -u لتمرير بيانات اعتماد المصادقة الأساسية. بدلاً من ذلك، تمرير رمز OAuth2 المميز في عنوان Bearer لجعل Edge management API الاتصالات. على سبيل المثال:

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

بعد تفعيل SAML، يمكنك إيقاف المصادقة الأساسية اختياريًا. إذا أوقفت المصادقة الأساسية، سيتم إيقاف جميع النصوص البرمجية (نصوص Maven والنصوص البرمجية والنصوص البرمجية apigeetool وغيرها) التي تعتمد على 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 لاسم نظام أسماء النطاقات للجهاز أو استضافة وحدة الدخول الموحّد (SSO) على شبكة Edge. في حال ضبط بروتوكول أمان طبقة النقل (TLS) على شبكة Edge، استخدِم https ورقم منفذ بروتوكول أمان طبقة النقل (TLS) الصحيح.

  2. فك ضغط حزمة ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. تثبيت "get_token" في /usr/local/bin:
    ./install

    يمكنك استخدام الخيار -b لتحديد موقع جغرافي مختلف:

    ./install -b path
  4. اضبط متغيّر البيئة SSO_LOGIN_URL على عنوان URL لتسجيل الدخول في النموذج التالي:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    حيث edge_sso_IP_DNS هو عنوان IP لاسم نظام أسماء النطاقات للجهاز أو استضافة وحدة الدخول الموحّد (SSO) على شبكة Edge. في حال ضبط بروتوكول أمان طبقة النقل (TLS) على شبكة Edge، استخدِم https ورقم منفذ بروتوكول أمان طبقة النقل (TLS) الصحيح.

  5. في أحد المتصفِّحات، انتقِل إلى عنوان URL التالي للحصول على رمز مرور صالح لمرة واحدة:
    http://edge_sso_IP_DNS:9099/passcode

    في حال ضبط بروتوكول أمان طبقة النقل (TLS) على الدخول المُوحَّد (SSO) في Edge، استخدِم https ورقم منفذ بروتوكول أمان طبقة النقل (TLS) الصحيح.

    يعرض عنوان URL هذا رمز مرور صالح لمرّة واحدة يبقى صالحًا إلى أن تعيد تحميل عنوان URL هذا للحصول على رمز المرور الجديد، أو يمكنك استخدام رمز المرور مع "get_token" لإنشاء إذن وصول الرمز المميز.

  6. استدعِ get_token للحصول على رمز الدخول OAuth2:
    get_token -u emailAddress

    حيث emailAddress هو عنوان البريد الإلكتروني لمستخدم Edge. أنت يُطلب منك إدخال رمز المرور لمرة واحدة الذي حصلت عليه في الخطوة 3:

    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
          Enter the passcode if SAML is enabled or press ENTER:

    أدخِل رمز المرور. تحصل الأداة get_token على إذن الوصول إلى OAuth2 يطبعه على الشاشة ويكتبه والرمز المميز للتحديث ~/.sso-cli

    يمكنك إدخال رمز المرور في سطر الأوامر باستخدام get_token في النموذج:

    get_token -u emailAddress -p passcode
  7. تمرير رمز الدخول إلى استدعاء واجهة برمجة تطبيقات إدارة 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 الموضح أعلاه في الخطوة الثالثة وإنشاء رمز مرور جديد قبل أن تتمكن من إنشاء رمز مرور رمز مميز جديد للدخول عبر OAuth

استخدام واجهة برمجة تطبيقات الإدارة للحصول على التحديثات وإعادة تحميلها رموز مميزة

استخدام OAuth2 الأمان باستخدام واجهة برمجة التطبيقات Apigee Edge management API يتضمن تعليمات توضح كيفية استخدام واجهة برمجة التطبيقات لإدارة Edge للحصول على الرموز المميّزة وإعادة تحميلها يمكنك أيضًا استخدام عمليات استدعاء واجهة برمجة التطبيقات Edge إلى للرموز المميزة التي تم إنشاؤها من تأكيدات SAML.

الاختلاف الوحيد بين طلبات البيانات من واجهة برمجة التطبيقات الموثقة في استخدام أمان OAuth2 مع Apigee Edge management API هو أن عنوان 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'