تنفيذ المهام تلقائيًا لموفِّري الهوية الخارجيين

عند استخدام IDP خارجي مع واجهة برمجة تطبيقات Edge، تكون العملية التي تستخدمها للحصول على OAuth2. ويُطلق على الرموز المميّزة للوصول وإعادة تحميلها من تفاعل موفِّر الهوية (idP) اسم تدفق رمز المرور. مع مسار رمز المرور، فإنك تستخدم متصفحًا للحصول على رمز مرور صالح لمرة واحدة تستخدمه بعد ذلك للحصول على OAuth2 الرموز المميزة.

ومع ذلك، قد تدعم بيئة التطوير لديك التشغيل الآلي لمهام التطوير الشائعة، مثل اختبار التشغيل الآلي أو CI/CD. ولبرمجة هذه المهام عند تفعيل موفِّر الهوية (idP) الخارجي، كنت بحاجة إلى طريقة للحصول على رموز OAuth2 المميزة وإعادة تحميلها بدون الحاجة إلى نسخ/لصق رمز مرور من المتصفح.

يدعم Edge عملية إنشاء الرموز المميّزة آليًا من خلال استخدام مستخدمي الأجهزة داخل المؤسسات. التي تم فيها تفعيل موفِّر الهوية (idP). يمكن لمستخدم الجهاز الحصول على رموز OAuth2 المميزة بدون الحاجة إلى تحديد رمز مرور. هذا يعني أنه يمكنك أتمتة عملية الحصول على رموز OAuth2 المميزة وتحديثها باستخدام واجهة برمجة تطبيقات إدارة Edge.

هناك طريقتان لإنشاء مستخدم جهاز لمؤسسة تم تفعيل موفِّر الهوية (idP) فيها:

يتم توضيح كل طريقة من هذه الطرق في الأقسام التالية.

لا يمكنك إنشاء مستخدم جهاز للمؤسسات التي لم يتم تفعيل موفِّر هوية (idP) خارجي لها.

إنشاء مستخدم جهاز باستخدام apigee-ssoadminapi.sh

استخدام apigee-ssoadminapi.sh لإنشاء مستخدم جهاز داخل مؤسسة تمكّن موفِّر الهوية (idP). راجع استخدام apigee-ssoadminapi.sh لمعرفة المزيد. ويمكنك إنشاء مستخدم جهاز واحد يستخدمه جميع مؤسساتك، أو إنشاء مستخدم جهاز منفصل لكل مؤسسة.

يتم إنشاء حساب مستخدم الجهاز وتخزينه في مخزن بيانات Edge، وليس في موفِّر الهوية (idP). لذلك، لا يتحملون مسؤولية صيانة مستخدم الجهاز باستخدام واجهة المستخدم Edge وإدارة Edge واجهة برمجة التطبيقات.

عند إنشاء مستخدم الجهاز، يجب تحديد عنوان بريد إلكتروني وكلمة مرور. بعد إنشاء مستخدم الجهاز، يمكنك تعيينه إلى مؤسسة واحدة أو أكثر.

لإنشاء مستخدم جهاز باستخدام apigee-ssoadminapi.sh:

  1. استخدِم الأمر apigee-ssoadminapi.sh التالي لإنشاء مستخدم الجهاز:
    apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \
      --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \
      -u machine_user_email -p machine_user_password

    QUESTION/TBD: Does apigee-ssoadminapi.sh also take "ldap" as an argument?

    المكان:

    • SSO_ADMIN_NAME هو اسم المستخدم الخاص بالمشرف الذي يتم تحديده من خلال السمة SSO_ADMIN_NAME في ملف الإعداد المستخدَم لإعداد وحدة الدخول المُوحَّد (SSO) في Apigee والقيمة التلقائية هي ssoadmin.
    • SSO_ADMIN_SECRET هي كلمة مرور المشرف على النحو المحدّد من قِبل السمة SSO_ADMIN_SECRET في ملف الإعداد.

      في هذا المثال، يمكنك حذف قيم --port و --ssl لأن الوحدة apigee-sso تستخدم القيمة التلقائية 9099 لـ --port وhttp لـ --ssl. إذا كان لا يستخدم تثبيت هذه الإعدادات الافتراضية، حددها كما ينبغي.

  2. سجّل الدخول إلى واجهة مستخدم Edge وأضف البريد الإلكتروني لمستخدم الجهاز إلى مؤسساتك وقم بتعيين لمستخدم الجهاز إلى الدور اللازم. عرض إضافة مستخدمين عموميين لـ أخرى.

إنشاء مستخدم جهاز باستخدام Edge واجهة برمجة تطبيقات الإدارة

يمكنك إنشاء مستخدم جهاز باستخدام واجهة برمجة تطبيقات إدارة Edge بدلاً من أداة "apigee-ssoadminapi.sh"

لإنشاء مستخدم جهاز باستخدام واجهة برمجة تطبيقات الإدارة:

  1. استخدِم الأمر curl التالي للحصول على رمز مميّز لمستخدم ssoadmin، اسم مستخدم حساب المشرف لـ apigee-sso:
    curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \
      -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \
      -d "response_type=token" -d "grant_type=client_credentials" \
      --data-urlencode "client_secret=SSO_ADMIN_SECRET" \
      --data-urlencode "client_id=ssoadmin"

    حيث SSO_ADMIN_SECRET هي كلمة مرور المشرف التي ضبطتها عند التثبيت. apigee-sso كما هو محدّد في السمة SSO_ADMIN_SECRET في config.

    يعرض هذا الأمر رمزًا مميزًا تحتاجه لإجراء الاتصال التالي.

  2. استخدِم الأمر curl التالي لإنشاء حساب مستخدم الجهاز وتمرير الرمز المميّز الذي تلقيتها في الخطوة السابقة:
    curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \
      -H "Accept: application/json" -H "Content-Type: application/json" \
      -d '{"userName" : "machine_user_email", "name" :
        {"formatted":"DevOps", "familyName" : "last_name", "givenName" :
        "first_name"}, "emails" : [ {"value" :
        "machine_user_email", "primary" : true } ], "active" : true,
        "verified" : true, "password" : "machine_user_password" }' \
      -H "Authorization: Bearer token"

    ستحتاج إلى كلمة مرور مستخدم الجهاز في الخطوات اللاحقة.

  3. سجِّل الدخول إلى واجهة مستخدم Edge.
  4. عليك إضافة البريد الإلكتروني لمستخدم الجهاز إلى مؤسساتك وتعيين مستخدم الجهاز إلى الدور اللازم. راجع الإضافة للمستخدمين حول العالم لمعرفة المزيد

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

استخدم واجهة برمجة تطبيقات Edge للحصول على رموز OAuth2 المميزة وتحديثها عن طريق تمرير رموز مستخدم الجهاز بيانات الاعتماد، بدلاً من رمز المرور.

للحصول على رموز OAuth2 المميزة لمستخدم الجهاز، عليك اتّباع الخطوات التالية:

  1. استخدِم طلب البيانات التالي من واجهة برمجة التطبيقات لإنشاء رموز الدخول الأولية وإعادة التحميل:
    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=m_user_email&password=m_user_password'
    .

    حفظ الرموز المميّزة لاستخدامها لاحقًا

  2. نقْل رمز الدخول إلى طلب بيانات من واجهة برمجة التطبيقات لإدارة Edge على أنه عنوان Bearer، باسم يوضح المثال التالي:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    يكون org_name هو اسم المؤسسة التي تحتوي على مستخدم الجهاز.

  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 \
      http://edge_sso_IP_DNS:9099/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'