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

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

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

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 البرمجية ونصوص Shell البرمجية وapigeetool وما إلى ذلك) التي تعتمد على طلبات بيانات من واجهة برمجة التطبيقات لإدارة Edge والتي تتيح "المصادقة الأساسية". يجب تعديل أي طلبات بيانات من واجهة برمجة التطبيقات والاسكتشات البرمجية التي تستخدِم المصادقة الأساسية لتمرير رموز الوصول OAuth2 في رأس Bearer.

استخدام 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 لاسم نظام أسماء النطاقات للجهاز الذي يستضيف وحدة الدخول المُوحَّد في 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 المعروض أعلاه في الخطوة 3 وإنشاء رمز مرور جديد قبل أن تتمكّن من إنشاء رمز دخول OAuth جديد.

استخدام Management API للحصول على الرموز المميّزة وإعادة تحميلها

استخدام OAuth2 الأمان باستخدام واجهة برمجة التطبيقات Apigee Edge management API يتضمن تعليمات توضح كيفية استخدام واجهة برمجة التطبيقات Edge management API للحصول على الرموز المميّزة وإعادة تحميلها يمكنك أيضًا استخدام طلبات Edge API للحصول على الرموز المميّزة التي تم إنشاؤها من تأكيدات 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'