إنتقل إلى المحتوى الرئيسي

الحصول على رمز وصول

الهدف​

الحصول على رمز وصول OAuth2 من خدمة الهوية في Parsware لتتمكن من استدعاء واجهات برمجة المنصة أثناء التطوير.

المتطلبات المسبقة​

  • أن تكون خدمة الهوية قيد التشغيل ويمكن الوصول إليها (في التطوير المحلي تستمع على http://localhost:5000).
  • أن تكون بيانات التطوير الأولية قد أُنشئت (تُنشأ تلقائيًا عند أول إقلاع): مستأجر تطوير وحساب مسؤول (admin@parsware.local).
  • عميل REST مثل curl.

الخطوات​

  1. اطلب رمزًا من نقطة نهاية الرموز باستخدام عميل التطوير وبيانات اعتماد المسؤول المُنشأ ضمن البيانات الأولية:

    curl -X POST http://localhost:5000/connect/token \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "grant_type=password" \
    -d "username=admin@parsware.local" \
    -d "password=Passw0rd!" \
    -d "scope=profile roles parsware.api offline_access" \
    -d "client_id=parsware-dev-cli" \
    -d "client_secret=dev-cli-secret"
  2. اقرأ access_token من استجابة JSON. تتضمن الاستجابة أيضًا refresh_token (لأن offline_access قد طُلب) وقيمة expires_in بالثواني.

  3. استدعِ واجهة برمجة مع وضع الرمز في ترويسة Authorization. وللتأكد من أن الرمز يعمل، استدعِ نقطة نهاية معلومات المستخدم:

    curl http://localhost:5000/connect/userinfo \
    -H "Authorization: Bearer <access_token>"

    تحدّد الاستجابة هوية المستخدم الذي سجّل الدخول (الموضوع، والاسم، والبريد الإلكتروني، والمستأجر).

ما يجري خلف الكواليس​

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

استكشاف الأخطاء​

  • invalid_grant — اسم المستخدم أو كلمة المرور خاطئ، أو أن الحساب مقفل بعد محاولات فاشلة متكررة. انتظر ثم أعد المحاولة، أو أعد تعيين كلمة المرور.

  • invalid_client — لا يطابق client_id/client_secret أي عميل مسجَّل. في التطوير، استخدم parsware-dev-cli / dev-cli-secret.

  • invalid_scope — أحد النطاقات المطلوبة غير مسموح به لهذا العميل. اطلب فقط profile وroles وoffline_access وparsware.api.

  • رفض الاتصال — خدمة الهوية غير قيد التشغيل أو تعمل على منفذ مختلف.

  • الرمز لا يحمل سوى mfa.enrol (وaud فيه parsware-mfa-enrolment) — الحساب حساب موظف بلا تطبيق مصادقة بعد. المصادقة الثنائية إلزامية للموظفين: سجّل واحداً (من الملف الشخصي، أو POST /connect/mfa/enrolment بهذا الرمز)، ثم اطلب مجدداً مع -d "mfa_code=<الأرقام الستة>". في النشر، المدير هو من يسمّيه PLATFORM_ADMIN_EMAIL الخاص بالنشر، لا admin@parsware.local.

سيناريوهات ذات صلة​

  • فحص مفاتيح JWKS التي تنشرها خدمة الهوية.

منحة كلمة المرور المعروضة هنا هي تسهيل خاص بالتطوير للحصول على رمز من سطر الأوامر. أما تسجيل الدخول التفاعلي الحقيقي فيستخدم تدفق رمز التفويض مع PKCE عبر Platform Shell.