বিষয়বস্তু এড়িয়ে যান

প্রমাণীকরণ

বেনামী অ্যাক্সেস, Basic Auth, এনক্রিপ্ট করা সেশন এবং HTTPS।

সমর্থিত প্রমাণীকরণ

Crateview বেনামী রেজিস্ট্রি, নেটিভ htpasswd Basic Auth এবং টোকেন মোডে ঐচ্ছিক Crateview auth পরিষেবা সমর্থন করে। এটি /v2/ অনুসন্ধান করে এবং রেজিস্ট্রির মৌলিক প্রমাণীকরণের প্রয়োজন হলে সাইন-ইন ফর্মটি প্রদর্শন করে।

বাহ্যিক Bearer-টোকেন পরিষেবা এবং OIDC একত্রিত নয়। কনফিগার করা বহিরাগত টোকেন পরিষেবাগুলি একটি স্পষ্ট অসমর্থিত-auth নোটিশ তৈরি করে।

রেজিস্ট্রি-সাইড Basic Auth

একটি bcrypt পাসওয়ার্ড হ্যাশ দিয়ে একটি htpasswd ফাইল তৈরি করুন৷ নিম্নলিখিত উদাহরণ একটি অস্থায়ী অফিসিয়াল 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 একটি এনকোডিং, পরিবহন এনক্রিপশন নয়। শেয়ার্ড শেল ইতিহাস বা সর্বজনীন উদাহরণে আসল পাসওয়ার্ডগুলি এড়িয়ে চলুন।

UI সেশন

Nitro সার্ভার রেজিস্ট্রির বিরুদ্ধে প্রমাণপত্রাদি যাচাই করে। এটি একটি এনক্রিপ্ট করা, HttpOnly, SameSite=Strict কুকিতে সংরক্ষণ করে। ব্রাউজার জাভাস্ক্রিপ্ট এবং localStorage শংসাপত্রগুলি গ্রহণ করে না। আট ঘণ্টা পর সেশনের মেয়াদ শেষ হয়।

একটি র্যান্ডম উত্পাদন সেশন গোপন সেট করুন:

openssl rand -base64 32

জেনারেট করা মানটিকে NUXT_SESSION_PASSWORD হিসাবে ব্যবহার করুন, কমপক্ষে 32টি অক্ষর সহ। একটি লোড ব্যালেন্সারের পিছনে প্রতিটি ফ্রন্টএন্ড উদাহরণ একই মান ব্যবহার করতে হবে। কনফিগারেশন ছাড়া, Crateview একটি প্রসেস-লোকাল সিক্রেট তৈরি করে, তাই রিস্টার্ট বিদ্যমান সেশনগুলিকে বাতিল করে দেয়।

HTTPS এবং লগআউট

যখন পাবলিক রিকোয়েস্ট প্রোটোকল HTTPS হয় তখন সেশন কুকি সিকিউর ব্যবহার করে। বিপরীত প্রক্সির ফরোয়ার্ড প্রোটোকল সঠিকভাবে কনফিগার করুন। সাইন আউট করলে UI সেশন পরিষ্কার হয়; এটি রেজিস্ট্রি ব্যবহারকারীদের মুছে বা পরিবর্তন করে না।

Docker এবং অন্যান্য CLI ক্লায়েন্টরা তাদের সাধারণ রেজিস্ট্রি শংসাপত্র ব্যবহার করে /v2/** প্রক্সির মাধ্যমে সরাসরি প্রমাণীকরণ করে। ওয়েব UI-এ সাইন ইন করা স্বয়ংক্রিয়ভাবে Docker CLI সাইন ইন করে না।

ঐচ্ছিক অ্যাকাউন্ট ব্যবস্থাপনা

একটি স্বাধীন auth/ব্যবস্থাপনা পরিষেবা অ্যাকাউন্ট তৈরি এবং নিজের-পাসওয়ার্ড পরিবর্তন সমর্থন করে। Docker রেজিস্ট্রির সাথে সরাসরি সংযোগ করে এবং UI কন্টেইনার ছাড়াই কাজ করে। ব্যবহারকারী এবং bcrypt হ্যাশগুলি htpasswd এ থাকে; টোকেন অনুমতি permissions.json এ লাইভ। অ্যাকাউন্ট স্টোরেজ SQLite ব্যবহার করে না।

  • বেসিক মোড: Distribution শেয়ার করা htpasswd ফাইল চেক করে; সমস্ত ব্যবহারকারীর সমান রেজিস্ট্রি অ্যাক্সেস আছে। Docker পরিচালনার পরিষেবা চালানোর প্রয়োজন নেই৷
  • টোকেন মোড: স্বতন্ত্র auth পরিষেবার সমস্যাগুলি স্বাক্ষরিত পাঁচ মিনিটের টোকেন; Distribution সংগ্রহস্থলের অনুমতি প্রয়োগ করে। Docker রেজিস্ট্রি এবং auth পরিষেবা প্রয়োজন৷ নতুন ব্যবহারকারীদের প্রাথমিকভাবে কোনো সংগ্রহস্থল অ্যাক্সেস নেই।
  • UI: ব্যবহারকারীরা বর্তমান পাসওয়ার্ড সরবরাহ করে তাদের নিজস্ব পাসওয়ার্ড পরিবর্তন করে। 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 ব্যবহার করে; UI অন্য ব্যবহারকারীদের পাসওয়ার্ড পরিবর্তন করতে বা অনুমতি বরাদ্দ করতে পারে না।

Compose ওভারলে, সেটআপ, মাইগ্রেশন এবং CLI কমান্ডের জন্য অ্যাকাউন্ট পরিষেবা নির্দেশিকা দেখুন। UI থেকে স্বাধীনভাবে সরাসরি রেজিস্ট্রিতে পাবলিক Docker অ্যাক্সেস রুট করুন। পূর্বে জারি করা টোকেন পাসওয়ার্ড পরিবর্তন বা অনুমতি প্রত্যাহার করার পরে পাঁচ মিনিট পর্যন্ত বৈধ থাকে।