প্রমাণীকরণ
আর্কাইভ সোর্স স্ন্যাপশট। পণ্য লেবেল Repovio ব্যবহার করে। অপরিবর্তিত এই রিলিজের ট্যাগ করা ডিপ্লয়মেন্ট ফাইল থেকে কনফিগারেশন শনাক্তকারী এবং কন্টেইনার রেফারেন্স ব্যবহার করুন।
প্রথম-রান সেটআপ
একটি নতুন ইনস্টলেশন স্থাপন করার পরে, এটির সর্বজনীন URL খুলুন। Repovio প্রতি অনুরোধ পুনঃনির্দেশ করে /auth/setup প্রথম
অ্যাকাউন্ট বিদ্যমান না হওয়া পর্যন্ত। একটি ঐচ্ছিক প্রথম এবং শেষ নাম, একটি অনন্য ব্যবহারকারীর নাম এবং কমপক্ষে 12টি অক্ষর
সহ একটি পাসওয়ার্ড লিখুন৷ অ্যাকাউন্টটি সিস্টেম অ্যাডমিনিস্ট্রেটর হিসাবে তৈরি করা হয় এবং অবিলম্বে সাইন ইন করা হয়।
সেটআপ শুধুমাত্র একবার সফল হতে পারে. প্রথম ব্যবহারকারী উপস্থিত হওয়ার পরে, /auth/setup রিডাইরেক্ট করে /auth/signin.
বিদ্যমান ইনস্টলেশনগুলি আপগ্রেডের সময় তাদের বর্তমান ব্যবহারকারীদের রাখে এবং আবার সেটআপ দেখায় না।
OpenID Connect একক সাইন-অন
Repovio স্থানীয় সাইন-ইন ছাড়াও একটি ঐচ্ছিক OpenID সংযোগ প্রদানকারীকে সমর্থন করে। একজন সিস্টেম অ্যাডমিনিস্ট্রেটর এটিকে সেটিংস → প্রমাণীকরণ এর অধীনে কনফিগার করে। এই লগইন থেকে পৃথক GitHub, GitLab, Forgejo, এবং Gitea প্রদানকারী OAuth: OIDC একটি চিহ্নিত করে Repovio ব্যবহারকারী, যখন প্রদানকারী OAuth শুধুমাত্র প্রদানকারী সংস্থান পড়ার অ্যাক্সেস মঞ্জুর করে।
প্রদানকারী কনফিগার করার আগে সঠিক বাহ্যিকভাবে পৌঁছানো যায় এমন API কলব্যাক URL সেট করুন:
PUBLIC_URL=https://repovio.example.com
OIDC_CALLBACK_URL=https://repovio.example.com/api/v1/auth/oidc/callback
এর মান নিবন্ধন করুন OIDC_CALLBACK_URL পরিচয় প্রদানকারীতে একটি অনুমোদিত রিডাইরেক্ট ইউআরআই হিসাবে। এর ইস্যুকারী,
ক্লায়েন্ট আইডি, ঐচ্ছিক ক্লায়েন্ট সিক্রেট, স্কোপ, এবং গ্রুপ দাবি কনফিগার করুন Repovio. এপিআই সেভ করার সময় ক্লায়েন্ট
সিক্রেট গ্রহণ করে কিন্তু কখনই এর মান ফেরত দেয় না। এটি সঙ্গে বিশ্রাম এ এনক্রিপ্ট করা হয় TOKEN_ENCRYPTION_KEY. ব্যবহার
করার আগে কনফিগারেশন সংরক্ষণ করুন সংযোগ পরীক্ষা করুন; অসংরক্ষিত পরিবর্তন যে চেক নিষ্ক্রিয়. নির্ভর করার আগে আবিষ্কার
সফল হয়েছে নিশ্চিত করুন OIDC সাইন ইন
ইস্যুকারী এবং এর শেষ পয়েন্টের জন্য HTTPS প্রয়োজন। HTTP ইস্যুকারীকে অনুমতি দিন শুধুমাত্র বিচ্ছিন্ন ল্যাব নেটওয়ার্কের জন্য উদ্দিষ্ট; এটিকে কখনই ইন্টারনেট-পৌঁছানোর যোগ্য স্থাপনার জন্য সক্রিয় করা উচিত নয়। স্থানীয় পাসওয়ার্ড সাইন-ইন একটি পুনরুদ্ধারের পথ হিসাবে উপলব্ধ থাকে এমনকি যখন OIDC সক্রিয় করা হয়।
ফর্মটি কপি করার জন্য কলব্যাক ইউআরএল, কনফিগার করা/পর্যবেক্ষিত গোষ্ঠী এবং সঞ্চিত ক্লায়েন্ট সিক্রেট প্রতিস্থাপন বা সাফ করার জন্য পৃথক নিয়ন্ত্রণও দেখায়। প্রতিস্থাপন অক্ষম রেখে সংরক্ষিত গোপনীয়তা রক্ষা করে। লোডিং, সেভিং এবং কানেকশন-চেক ব্যর্থতা আলাদাভাবে রিপোর্ট করা হয়েছে। অবৈধ কনফিগারেশন ঠিক করুন এবং সংযোগ চেক পুনরায় চেষ্টা করার আগে আবার সংরক্ষণ করুন।
গ্রুপ, ভূমিকা এবং পরিচয়
গোষ্ঠী দাবি একটি সঠিক দাবির নাম বা একটি বিন্দু-বিচ্ছিন্ন পথ যেমন realm_access.groups হতে পারে। তিনটি Repovio ভূমিকার
জন্য সঠিক, কেস-সংবেদনশীল গ্রুপ মানগুলি কনফিগার করুন৷ যদি একাধিক গ্রুপ মিলে যায়, Repovio SYSTEM_ADMIN, তারপর
MANAGER, তারপর VIEWER প্রযোজ্য। অতুলনীয়, বিকৃত, অনুপস্থিত, বা অত্যধিক বড় গোষ্ঠীর দাবিগুলি অস্বীকার করা হয় যদি না
অমিল ব্যবহারকারীদের দর্শক হিসাবে অনুমতি দিন স্পষ্টভাবে সক্ষম না করা হয়৷
একটি OIDC অ্যাকাউন্ট শুধুমাত্র যাচাইকৃত ইস্যুকারী এবং বিষয় জোড়া দ্বারা লিঙ্ক করা হয়। Repovio ইমেল ঠিকানা বা ব্যবহারকারীর নাম দ্বারা একটি স্থানীয় অ্যাকাউন্টে OIDC লগইন লিঙ্ক করে না। প্রতিটি সফল লগইনে যাচাইকৃত দাবি থেকে প্রথম এবং শেষ নামগুলি সিঙ্ক্রোনাইজ করা হয়; লগইন নাম, প্রোফাইল নাম, এবং পাসওয়ার্ড স্থানীয়ভাবে পরিবর্তন করা যাবে না. রিপোজিটরি সদস্যতা Repovio-এ পরিচালিত থাকে এবং কখনই পরিচয়-প্রদানকারী গ্রুপ থেকে প্রাপ্ত হয় না।
নিরাপত্তা-সম্পর্কিত কনফিগারেশন বা ভূমিকা পরিবর্তন করলে বিদ্যমান OIDC bearer token বাতিল হয়। শুধু প্রদানকারীর প্রদর্শিত নাম পরিবর্তন করলে বিদ্যমান OIDC token বাতিল হয় না। পরিচয় প্রদানকারীর কোনো গোষ্ঠী নিষ্ক্রিয় বা সরিয়ে দিলে সংশ্লিষ্ট অ্যাকাউন্ট নতুন সেশন পায় না এবং পরবর্তী প্রত্যাখ্যাত লগইন প্রচেষ্টার পর তার আগের সেশনগুলোও বাতিল হয়।
প্রদানকারী উদাহরণ
Authentik-এর জন্য, অনুমোদন-কোড প্রবাহ সহ একটি OAuth2/OpenID প্রদানকারী তৈরি করুন, উপরের সঠিক কলব্যাক URL এবং openid,
profile, এবং email স্কোপ। একটি স্কোপ ম্যাপিং যোগ করুন যা গোষ্ঠীর নামের একটি অ্যারে হিসাবে নির্বাচিত গোষ্ঠী দাবিকে
ফেরত দেয়, একটি অ্যাপ্লিকেশনের সাথে প্রদানকারীকে সংযুক্ত করুন, তারপরে অ্যাপ্লিকেশনটির ইস্যুকারী, ক্লায়েন্ট আইডি এবং
ক্লায়েন্টের গোপনীয়তা Repovio-এ অনুলিপি করুন।
অন্য মান-সম্মত প্রদানকারীর জন্য, অনুমোদন কোড ফ্লো সক্ষম করুন, S256 PKCE প্রয়োজন, সঠিক কলব্যাক ইউআরএল নিবন্ধন করুন এবং
একটি স্থিতিশীল sub এবং ID টোকেন বা UserInfo প্রতিক্রিয়াতে কনফিগার করা গ্রুপ দাবি অন্তর্ভুক্ত করুন। Repovio শুধুমাত্র
অপ্রতিসম আইডি-টোকেন স্বাক্ষর গ্রহণ করে এবং স্বাক্ষরবিহীন এবং HMAC-স্বাক্ষরিত টোকেন প্রত্যাখ্যান করে।
OIDC API চুক্তি
| পদ্ধতি | পথ | অ্যাক্সেস | উদ্দেশ্য |
|---|---|---|---|
GET | /api/v1/auth/oidc/status | পাবলিক | শুধুমাত্র কার্যকর উপলব্ধতা এবং ঐচ্ছিক প্রদানকারীর নাম প্রদান করে। |
GET | /api/v1/auth/oidc/start | পাবলিক | একটি ব্রাউজার-বাউন্ড অনুমোদন-কোড এবং S256 PKCE লেনদেন শুরু করে। |
GET | /api/v1/auth/oidc/callback | পাবলিক | প্রদানকারীর প্রতিক্রিয়া যাচাই করে এবং একটি এককালীন খণ্ড কোড সহ পুনঃনির্দেশ করে। |
POST | /api/v1/auth/oidc/exchange | পাবলিক | ফ্র্যাগমেন্ট কোড একবার ব্যবহার করে এবং স্বাভাবিক বাহক AuthResult ফেরত দেয়। |
GET, PUT | /api/v1/auth/oidc/config | সিস্টেম অ্যাডমিনিস্ট্রেটর | গোপন-নিরাপদ OIDC সেটিংস পড়ে বা আপডেট করে। |
POST | /api/v1/auth/oidc/check | সিস্টেম অ্যাডমিনিস্ট্রেটর | এটি পরিবর্তন না করে সংরক্ষিত আবিষ্কার কনফিগারেশন পরীক্ষা করে। |
কলব্যাক কখনই একটি URL-এ একজন বাহক JWT রাখে না। এর অস্বচ্ছ এক্সচেঞ্জ কোড 60 সেকেন্ড পরে মেয়াদ শেষ হয় এবং শুধুমাত্র একবার ব্যবহার করা যেতে পারে। প্রদানকারীর ত্রুটিগুলি ব্রাউজার বা লগগুলিতে পৌঁছানোর আগে স্থিতিশীল ত্রুটি কোডগুলিতে হ্রাস করা হয়৷
আপনার পাসওয়ার্ড পরিবর্তন করুন
সাইন ইন করার সময়, সেটিংস → সাধারণ → পাসওয়ার্ড পরিবর্তন করুন খুলুন। বর্তমান পাসওয়ার্ড, নতুন পাসওয়ার্ড এবং তার নিশ্চিতকরণ লিখুন। Repovio বর্তমান ব্রাউজারটিকে একটি প্রতিস্থাপন অ্যাক্সেস টোকেন দিয়ে সাইন ইন করে রাখে এবং অন্য প্রতিটি সাইন-ইন সেশনে থাকা টোকেনগুলিকে বাতিল করে।
একটি ভুলে যাওয়া পাসওয়ার্ড রিসেট করুন
Repovio ইচ্ছাকৃতভাবে কোনো ইমেল-ভিত্তিক পাসওয়ার্ড রিসেট নেই। একটি স্থাপনার প্রশাসক compose.yml ধারণকারী ডিরেক্টরি থেকে
একটি স্থানীয় অ্যাকাউন্ট পুনরায় সেট করতে পারেন। প্রতিস্থাপনের পাসওয়ার্ডটি প্রতিধ্বনিত না করে বা শেল ইতিহাসে সংরক্ষণ না
করে পড়ুন, তারপর এটিকে আদর্শ ইনপুটের মাধ্যমে API কন্টেইনারে পাঠান:
read -rsp 'New Repovio password: ' REPOVIO_NEW_PASSWORD
printf '\n'
printf '%s\n' "$REPOVIO_NEW_PASSWORD" \
| docker compose exec -T api node dist/scripts/reset-password.js USERNAME
unset REPOVIO_NEW_PASSWORD
সঠিক লগইন ব্যবহারকারীর নাম দিয়ে USERNAME প্রতিস্থাপন করুন। কমান্ডের জন্য 12 এবং 256 অক্ষরের মধ্যে একটি পাসওয়ার্ড
প্রয়োজন, শুধুমাত্র সেই স্থানীয় অ্যাকাউন্টটি আপডেট করে এবং এর সমস্ত বিদ্যমান অ্যাক্সেস টোকেনগুলিকে বাতিল করে। পরে নতুন
পাসওয়ার্ড দিয়ে আবার সাইন ইন করুন। কমান্ড OIDC-পরিচালিত অ্যাকাউন্টগুলিকে প্রত্যাখ্যান করে কারণ তাদের কোনও স্থানীয়
পাসওয়ার্ড নেই৷