Gateway

دلالات بيانات اعتماد المصادقة

يحدد هذا المستند دلالات أهلية بيانات الاعتماد وحلها القياسية المستخدمة عبر:

  • resolveAuthProfileOrder
  • resolveApiKeyForProfile
  • models status --probe
  • doctor-auth

الهدف هو إبقاء سلوك وقت الاختيار ووقت التشغيل متوافقين.

رموز أسباب الفحص المستقرة

  • ok
  • excluded_by_auth_order
  • missing_credential
  • invalid_expires
  • expired
  • unresolved_ref
  • no_model

بيانات اعتماد الرمز المميز

تدعم بيانات اعتماد الرمز المميز (type: "token") القيمة المضمنة token و/أو tokenRef.

قواعد الأهلية

  1. يكون ملف تعريف الرمز المميز غير مؤهل عندما يكون كل من token وtokenRef غائبين.
  2. expires اختياري.
  3. إذا كان expires موجودًا، فيجب أن يكون عددًا محدودًا أكبر من 0.
  4. إذا كان expires غير صالح (NaN أو 0 أو سالبًا أو غير محدود أو من نوع خاطئ)، يكون ملف التعريف غير مؤهل مع invalid_expires.
  5. إذا كان expires في الماضي، يكون ملف التعريف غير مؤهل مع expired.
  6. لا يتجاوز tokenRef التحقق من صحة expires.

قواعد الحل

  1. تطابق دلالات المحلل دلالات الأهلية لـ expires.
  2. بالنسبة إلى ملفات التعريف المؤهلة، يمكن حل مادة الرمز المميز من القيمة المضمنة أو من tokenRef.
  3. تنتج المراجع غير القابلة للحل unresolved_ref في مخرجات models status --probe.

قابلية نقل نسخ الوكيل

توريث مصادقة الوكيل يعمل بالقراءة عبر المصدر. عندما لا يمتلك الوكيل ملف تعريف محليًا، يمكنه حل ملفات التعريف من مخزن الوكيل الافتراضي/الرئيسي في وقت التشغيل دون نسخ المواد السرية إلى ملف auth-profiles.json الخاص به.

تستخدم تدفقات النسخ الصريحة، مثل openclaw agents add، سياسة قابلية النقل هذه:

  • تكون ملفات تعريف api_key قابلة للنقل ما لم يكن copyToAgents: false.
  • تكون ملفات تعريف token قابلة للنقل ما لم يكن copyToAgents: false.
  • لا تكون ملفات تعريف oauth قابلة للنقل افتراضيًا لأن رموز التحديث قد تكون أحادية الاستخدام أو حساسة للدوران.
  • يمكن لتدفقات OAuth المملوكة للموفر الاشتراك باستخدام copyToAgents: true فقط عندما تكون سلامة نسخ مواد التحديث عبر الوكلاء معروفة.

تبقى ملفات التعريف غير القابلة للنقل متاحة عبر التوريث بالقراءة عبر المصدر ما لم يسجل الوكيل الهدف الدخول بشكل منفصل وينشئ ملف تعريف محليًا خاصًا به.

مسارات المصادقة المعتمدة على الإعدادات فقط

إدخالات auth.profiles ذات mode: "aws-sdk" هي بيانات تعريف للتوجيه، وليست بيانات اعتماد مخزنة. تكون صالحة عندما يستخدم الموفر الهدف models.providers.<id>.auth: "aws-sdk" أو مسار AWS SDK الافتراضي المدمج في Amazon Bedrock. يمكن أن تظهر معرّفات ملفات التعريف هذه في auth.order وتجاوزات الجلسة حتى عندما لا يوجد إدخال مطابق في auth-profiles.json.

لا تكتب type: "aws-sdk" في auth-profiles.json. إذا كان تثبيت قديم يحتوي على مثل هذه العلامة، فإن openclaw doctor --fix ينقلها إلى auth.profiles ويزيل العلامة من مخزن بيانات الاعتماد.

تصفية ترتيب المصادقة الصريح

  • عندما يتم تعيين auth.order.<provider> أو تجاوز ترتيب مخزن المصادقة لموفر، فإن models status --probe يفحص فقط معرّفات ملفات التعريف التي تبقى في ترتيب المصادقة المحلول لذلك الموفر.
  • لا تتم محاولة ملف تعريف مخزن لذلك الموفر ومحذوف من الترتيب الصريح لاحقًا بصمت. تبلّغ مخرجات الفحص عنه مع reasonCode: excluded_by_auth_order والتفصيل Excluded by auth.order for this provider.

حل هدف الفحص

  • يمكن أن تأتي أهداف الفحص من ملفات تعريف المصادقة، أو بيانات اعتماد البيئة، أو models.json.
  • إذا كان لدى موفر بيانات اعتماد ولكن OpenClaw لا يستطيع حل مرشح نموذج قابل للفحص له، فإن models status --probe يبلغ عن status: no_model مع reasonCode: no_model.

اكتشاف بيانات اعتماد CLI الخارجية

  • لا تُكتشف بيانات الاعتماد الخاصة بوقت التشغيل فقط والمملوكة لواجهات CLI خارجية إلا عندما يكون الموفر أو وقت التشغيل أو ملف تعريف المصادقة ضمن نطاق العملية الحالية، أو عندما يوجد بالفعل ملف تعريف محلي مخزن لذلك المصدر الخارجي.
  • يجب على مستدعي مخزن المصادقة اختيار وضع اكتشاف صريح لواجهات CLI الخارجية: none للمصادقة الدائمة/مصادقة Plugin فقط، أو existing لتحديث ملفات تعريف CLI الخارجية المخزنة بالفعل، أو scoped لمجموعة موفر/ملف تعريف محددة.
  • تمرر مسارات القراءة فقط/الحالة allowKeychainPrompt: false؛ فهي تستخدم بيانات اعتماد CLI الخارجية المدعومة بالملفات فقط ولا تقرأ أو تعيد استخدام نتائج macOS Keychain.

حاجز سياسة OAuth SecretRef

  • إدخال SecretRef مخصص لبيانات الاعتماد الثابتة فقط.
  • إذا كانت بيانات اعتماد ملف التعريف type: "oauth"، فلا تُدعم كائنات SecretRef لمادة بيانات اعتماد ملف التعريف هذا.
  • إذا كان auth.profiles.<id>.mode هو "oauth"، يتم رفض إدخال keyRef/tokenRef المدعوم بـ SecretRef لذلك الملف التعريفي.
  • تُعد الانتهاكات إخفاقات صارمة في مسارات حل مصادقة بدء التشغيل/إعادة التحميل.

الرسائل المتوافقة مع القديم

للتوافق مع السكربتات، تُبقي أخطاء الفحص هذا السطر الأول دون تغيير:

Auth profile credentials are missing or expired.

يمكن إضافة تفاصيل سهلة القراءة ورموز أسباب مستقرة في الأسطر اللاحقة.

ذات صلة