المصادقة
المصادقة المدعومة
يدعم Crateview السجلات المجهولة، وhtpasswd Basic Auth الأصلي وخدمة Crateview auth الاختيارية في وضع الرمز المميز. يقوم بالتحقق من /v2/ ويعرض نموذج تسجيل الدخول عندما يتطلب التسجيل المصادقة الأساسية.
لم يتم دمج خدمات الرمز المميز Bearer الخارجية وOIDC. تنتج خدمات الرمز المميز الخارجية غير المكونة إشعارًا صريحًا غير مدعوم auth.
جانب التسجيل Basic Auth
قم بإنشاء ملف htpasswd باستخدام كلمة مرور bcrypt. يستخدم المثال التالي حاوية Apache رسمية مؤقتة؛ استبدل بيانات اعتماد المثال وقم بحماية الملف الناتج:
mkdir -p auth
docker run --rm --entrypoint htpasswd httpd:2 -Bbn your-user choose-a-strong-password > auth/htpasswd
مثال على إعدادات Distribution:
auth:
htpasswd:
realm: Registry
path: /auth/htpasswd
قم بتحميل الملف الذي تم إنشاؤه في حاوية التسجيل على /auth/htpasswd. تكوين التسجيل منفصل عن تكوين Crateview. استخدم HTTPS للوصول عن بعد؛ Basic Auth هو تشفير وليس تشفير نقل. تجنب ترك كلمات مرور حقيقية في سجل الصدفة المشترك أو الأمثلة العامة.
جلسات واجهة المستخدم
يقوم خادم Nitro بالتحقق من صحة بيانات الاعتماد مقابل السجل. يقوم بتخزينها في ملف تعريف ارتباط مشفر HttpOnly SameSite=Strict. لا يتلقى متصفح JavaScript وlocalStorage بيانات الاعتماد. تنتهي الجلسات بعد ثماني ساعات.
قم بتعيين سر جلسة إنتاج عشوائية:
openssl rand -base64 32
استخدم القيمة التي تم إنشاؤها كـ NUXT_SESSION_PASSWORD، مع 32 حرفًا على الأقل. يجب أن يستخدم كل مثيل للواجهة الأمامية خلف موازن التحميل نفس القيمة. بدون التكوين، يقوم Crateview بإنشاء سر العملية المحلية، وبالتالي فإن إعادة التشغيل تؤدي إلى إبطال الجلسات الحالية.
HTTPS وتسجيل الخروج
يستخدم ملف تعريف ارتباط الجلسة Secure عندما يكون بروتوكول الطلب العام هو HTTPS. قم بتكوين بروتوكول إعادة توجيه الوكيل العكسي بشكل صحيح. يؤدي تسجيل الخروج إلى مسح جلسة واجهة المستخدم؛ ولا يحذف أو يعدل مستخدمي التسجيل.
يقوم Docker وعملاء CLI الآخرين بالمصادقة مباشرة من خلال وكيل /v2/** باستخدام بيانات اعتماد التسجيل العادية الخاصة بهم. لا يؤدي تسجيل الدخول إلى واجهة مستخدم الويب إلى تسجيل دخول Docker CLI تلقائيًا.
إدارة الحساب الاختيارية
تدعم خدمة إدارة/auth المستقلة إنشاء الحساب وتغيير كلمة المرور الخاصة. يتصل Docker مباشرة بالسجل ويعمل بدون حاوية واجهة المستخدم. يبقى المستخدمون وتجزئة bcrypt في htpasswd؛ أذونات الرمز المميز موجودة في permissions.json. تخزين الحساب لا يستخدم SQLite.
- الوضع الأساسي: يتحقق Distribution من ملف htpasswd المشترك؛ جميع المستخدمين لديهم حق الوصول إلى التسجيل على قدم المساواة. لا يتطلب Docker تشغيل خدمة الإدارة.
- وضع الرمز المميز: تصدر خدمة auth المستقلة رموزًا موقعة مدتها خمس دقائق؛ يفرض Distribution أذونات المستودع. يتطلب Docker التسجيل وخدمة auth. ليس لدى المستخدمين الجدد في البداية حق الوصول إلى المستودع.
- واجهة المستخدم: يقوم المستخدمون بتغيير كلمة المرور الخاصة بهم عن طريق توفير كلمة المرور الحالية.
NUXT_USER_CREATION_ALLOWED_USERSافتراضيًا فارغ؛ يسمحalice,bobلهؤلاء المستخدمين فقط بإنشاء حسابات، بينما يسمح*لكل مستخدم تمت مصادقته. يتم فرض هذه السياسة من جانب الخادم. - الأذونات: تمنح واجهة سطر الأوامر (CLI) المستودعات المستهدفة أو مساحات الأسماء (
team/*) أو كل شيء (*)؛ الملفات الشخصية هيreader(pull)، وwriter(pull/push)، وmanager(pull/push/حذف). لا يحتوي الوضع الأساسي على أدوار التسجيل.
قم بتمكين NUXT_AUTH_MODE=htpasswd أو token بشكل صريح وقم بتكوين NUXT_AUTH_SERVICE_URL الداخلي وNUXT_AUTH_SERVICE_SECRET للخادم فقط. يتطلب وضع الرمز المميز أيضًا أن يتطابق NUXT_AUTH_TOKEN_REALM مع نقطة نهاية الرمز المميز العام تمامًا. لا تدعم السجلات المجهولة وخدمات الرموز الخارجية إدارة الحسابات المحلية. تستخدم الأذونات وعمليات إعادة تعيين كلمة المرور الإدارية auth CLI؛ لا يمكن لواجهة المستخدم تغيير كلمات مرور المستخدمين الآخرين أو تعيين الأذونات.
راجع دليل خدمة الحساب للتعرف على تراكبات Compose والإعداد والترحيل وأوامر CLI. قم بتوجيه الوصول العام إلى Docker مباشرة إلى السجل بشكل مستقل عن واجهة المستخدم. تظل الرموز المميزة التي تم إصدارها مسبقًا صالحة لمدة تصل إلى خمس دقائق بعد تغيير كلمة المرور أو إلغاء الإذن.
تجمع الإدارة الإعدادات والمستخدمين. توفر قائمة الحساب اللغة والمظهر أيضاً. يغيّر الحساب كلمة مرورك بعد التحقق من الحالية. تتحكم قائمة سماح الخادم في عرض الحسابات وإنشائها؛ صلاحيات الرموز للقراءة فقط. كلمات المرور الجديدة12 محرفاً على الأقل و72 بايت UTF-8 كحد أقصى. لا تملك حسابات الرموز الجديدة وصولاً أولياً للمستودعات.

NUXT_AUTH_MODE=htpasswd
NUXT_AUTH_SERVICE_URL=http://auth:8080
NUXT_AUTH_SERVICE_SECRET=REPLACE_WITH_SEPARATE_MANAGEMENT_SECRET
NUXT_USER_CREATION_ALLOWED_USERS=alice,bob





