الانتقال إلى المحتوى الرئيسي
مفتاح بلا تقييد مصدر هو بيانات اعتماد حاملة صرفة: من يحمل السلسلة يستطيع تقديمها من أي مكان. يحوّل حقل allow_ips مفتاحاً إلى مفتاح api بقائمة بيضاء لـ ip — لا يعمل إلا عند تقديمه من عنوان مصدر أدرجته. مفتاح مسرّب أُعيد تشغيله من جهاز مهاجم، أو وكيل سكني، أو مشغّل CI مخترَق، يُرفض قبل أن يلمس نموذجاً. هذا هو نصف ربط المصدر من الاستقلالية الأدنى: model_limits يحدّ أي النماذج يجوز لمفتاح الوصول إليها، وallow_ips يحدّ من أين يجوز تقديم المفتاح.

1. ماذا يفعل allow_ips

يحمل allow_ips قائمة بعناوين مصدر أو نطاقات CIDR. في كل طلب، يقارن OrcaRouter عنوان IP المصدر للمستدعي مقابل تلك القائمة:
  • مطابقة ← يتقدّم الطلب إلى فحوص حدود النماذج والحصة والسياسة.
  • لا مطابقة ← يُرفض الطلب في طبقة المصادقة بـ HTTP 403 (access_denied)، قبل أي استدعاء نموذج أعلى.
  • قائمة فارغة ← لا تقييد؛ يُقبَل المفتاح من أي عنوان.
الفحص هو أول بوابة يجتازها مفتاح، إلى جانب صلاحية المفتاح — يجري قبل حواجز الحماية، وقبل جدار الحماية، وقبل القياس. مصدر غير مُدرَج لا يصل أبداً إلى سياساتك أو رصيدك.
allow_ips فارغ يعني كل عناوين IP مسموحة، وليس لا شيء. تركه فارغاً هو الافتراضي غير المقيّد — ثبّت المفتاح لتجعل الحقل يفعل أي شيء.

2. الصيغ المقبولة

كل إدخال هو IP واحد أو نطاق CIDR. امزج كليهما بحرية؛ أدرج إدخالاً واحداً لكل سطر.

عنوان واحد

203.0.113.7 — مضيف واحد بالضبط. الأفضل لخادم ثابت IP أو بوابة NAT بعنوان خروج مستقر.

نطاق CIDR

203.0.113.0/24 — كتلة كاملة. الأفضل لشبكة فرعية سحابية، أو تجمّع VPN، أو مجموعة تحجيم تلقائي خلف CIDR خروج واحد.
IP مجرّد يطابق ذلك العنوان الواحد؛ وCIDR يطابق كل عنوان في الكتلة. كلٌّ من حرفيّات IPv4 وIPv6 يُحلَّل.
ثبّت على أضيق نطاق لا يزال يغطي كل مستدعٍ شرعي. مضيف واحد (/32) أضيق من /24؛ و/24 أضيق من “أي مكان”. كل بِت تسقطه يوسّع مجموعة الأماكن التي لا يزال مفتاح مسرّب يعمل فيها.

3. اضبطها في وحدة التحكم

اضبط allow_ips في محرّر المفاتيح عند /console/token. إنشاء مفتاح أو تعديله يتطلب دور Developer أو أعلى.
  1. افتح وحدة التحكم ← مفاتيح API وأنشئ مفتاحاً أو عدّله.
  2. في محرّر المفاتيح، أدخل عناوينك الموثوقة في حقل قائمة سماح IP — IP واحد أو CIDR لكل سطر.
  3. احفظ. يُطبَّق التقييد في الطلب التالي الذي يصدره ذلك المفتاح — دون إعادة نشر، ودون تغيير في كود الوكيل.
تحقّق من عنوان المصدر الحقيقي الذي تراه البوابة قبل أن تُحكم قفل مفتاح. إذا جلس وكيلك خلف NAT، أو موازِن حِمل، أو وكيل خروج، فإن العنوان الذي يرصده OrcaRouter هو قفزة الخروج تلك — وليس IP الخاص للوكيل. ضع عنوان الخروج في قائمة السماح، واختبر من البيئة المنشورة قبل أن تطلق.

4. مثال ملموس واحد: وكيل مجدوَل

مهمة مجدوَلة تلخّص التذاكر تعمل فقط من شبكة فرعية سحابية واحدة. ثبّت مفتاحها على تلك الشبكة الفرعية بحيث تصبح بيانات الاعتماد عديمة الفائدة في أي مكان آخر.
الحقلالقيمةالأثر
allow_ips203.0.113.0/24فقط كتلة الخروج للمجدوِل تستطيع تقديم هذا المفتاح
model_limitsنموذج تلخيص واحدلا يستطيع التصعيد إلى نموذج طليعي
credit_limit_usdسقف أسبوعيحلقة انفلات لا يمكنها استنزاف الرصيد
استدعاء الترحيل نفسه دون تغيير — لا يزال يستخدم مفتاح sk-orca-… كرمز حامل:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Summarize this ticket..."}]
  }'
مُقدَّماً من داخل 203.0.113.0/24، يتقدّم الاستدعاء. أعد تشغيل نفس الطلب بالضبط من أي عنوان آخر وتعيد البوابة:
{
  "error": {
    "message": "您的 IP 不在令牌允许访问的列表中 (request id: ...)",
    "type": "orcarouter_api_error",
    "code": "access_denied"
  }
}
لا يُستدعى النموذج أبداً، ولا تُنفَق حصة، ويُسجَّل الرفض.
يُضبَط allow_ips بالكامل عبر محرّر مفاتيح وحدة التحكم — إجراء Developer-فما-فوق على جلسة مساحة عملك. لا توجد خدمة ذاتية بمفتاح ترحيل له: لا يستطيع مفتاح توسيع قائمة سماح مصدره الخاصة.

5. ماذا تحوي قائمة سماح IP وماذا لا تحوي

مفتاح api بقائمة بيضاء لـ ip يحدّ من أين يعمل مفتاح — شريحة واحدة من نطاق الانفجار. يتركّب مع حقول النطاق الأخرى بدلاً من استبدالها.
بيانات اعتماد سُرِّبت من سجلات، أو commit في git، أو حاسوب محمول مخترَق تكون وزناً ميتاً ما لم يستطع المهاجم أيضاً توليد حركة مرور من نطاقك المُدرَج في قائمة السماح. هذا هو العمل الأساسي للحقل — انظر المفتاح المسرّب للاستجابة الكاملة للحادثة.
إذا كان الاختراق هو مضيف مُدرَج في قائمة السماح — تبعية مسمومة تعمل على خادمك الخاص — يجتاز فحص IP المصدر. أقرن allow_ips بـ model_limits، و سقف إنفاق، و سياسة جدار حماية بحيث يبقى اختراق مصدر موثوق محدوداً رغم ذلك.
تثبيت IP لا يجعل مفتاحاً قصير العمر. اجمعه مع صلاحية انتهاء مطلقة وجدول تدوير بحيث يتوقف المفتاح عن العمل من أماكن جديدة ويتوقف عن العمل في النهاية.

6. ملاحظات تشغيلية

إذا لم يكن لمستدعيك عنوان مصدر مستقر (serverless بخروج متدوّر، عملاء محمولون، شبكات مكتب واسعة)، فتثبيت IP هو التحكّم الخاطئ — إما أن تُقصي حركة مرور حقيقية أو توسّع النطاق حتى يصبح بلا معنى. اعتمد على model_limits، وسقوف الإنفاق، والصلاحية، وربط السياسات بدلاً من ذلك.
تعديل allow_ips يحدث أثره في الطلب التالي — لا يوجد تأخير انتشار تنتظره. عند إضافة منطقة أو ترحيل شبكة فرعية، حدّث المفتاح أولاً، وأكّد أن النطاق الجديد يعمل، ثم أسقط القديم.
يعيش allow_ips على المفتاح الفردي، فيمكن لكل وكيل أن يكون له ربط مصدر خاص به. يمكن لمفتاح مجدوِل أن يُثبَّت على شبكة فرعية للدُفعات بينما يسمح مفتاح تفاعلي بنطاق مكتب أوسع — كلاهما في نفس مساحة العمل.

7. الخطوات التالية

كائن الرمز

كل حقل على مفتاح، بما في ذلك allow_ips، في مرجع واحد.

حدود النماذج

حدّ أي النماذج يجوز لمفتاح الوصول إليها — النصف الآخر من ربط المصدر + النطاق.

المفتاح المسرّب

ماذا تفعل لحظة انكشاف مفتاح.

قائمة تحقّق الاستقلالية الأدنى

مرّر كل مفتاح عبر نفس مرحلة التقسية.
قائمة سماح IP هي أرخص قطع لنطاق الانفجار يمكنك إجراؤه: حقل واحد، دون تغيير كود، ومفتاح مسرّب يتوقف عن العمل من كل مكان لم يكن مقصوداً تشغيله منه. أقرنها ببقية نموذج المفتاح المحدّد النطاق لدفاع متعمّق.