استخدام 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. مثلاً:

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) في الدخول المُوحَّد (SSO) على 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) في الدخول المُوحَّد (SSO) على 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 على أنّه عنوان الحامل:
    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.

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

يحتوي استخدام أمان 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'