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

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

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

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

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

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

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

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

استخدِم الأداة apigee-ssoadminapi.sh لإنشاء مستخدم جهاز في مؤسسة تم تفعيل موفِّر الهوية فيها. راجِع استخدام 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 في ملف الإعداد المُستخدَم لضبط وحدة الدخول الموحّد لخدمة Apigee. والقيمة التلقائية هي ssoadmin.
    • SSO_ADMIN_SECRET هي كلمة مرور المشرف على النحو المحدّد في السمة SSO_ADMIN_SECRET في ملف الإعداد.

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

  2. سجِّل الدخول إلى واجهة مستخدم Edge وأضِف البريد الإلكتروني لمستخدم الجهاز إلى مؤسساتك، مع منح مستخدم الجهاز الدور الضروري. يُرجى الاطّلاع على إضافة مستخدمين في جميع أنحاء العالم لمزيد من المعلومات.

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

يمكنك إنشاء مستخدم للجهاز باستخدام واجهة برمجة تطبيقات إدارة 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 في ملف الإعداد.

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

  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'