प्रमाणीकरण
प्रथम-रन सेटअप
एक नया इंस्टॉलेशन तैनात करने के बाद, उसका सार्वजनिक यूआरएल खोलें। Repovio पहला खाता मौजूद होने तक प्रत्येक अनुरोध को
/auth/setup पर पुनर्निर्देशित करता है। एक वैकल्पिक प्रथम और अंतिम नाम, एक अद्वितीय उपयोगकर्ता नाम और कम से कम 12
अक्षरों वाला एक पासवर्ड दर्ज करें। खाता सिस्टम प्रशासक के रूप में बनाया गया है और तुरंत साइन इन किया गया है।
सेटअप केवल एक बार ही सफल हो सकता है. पहला उपयोगकर्ता मौजूद होने के बाद, /auth/setup /auth/signin पर रीडायरेक्ट करता
है। मौजूदा इंस्टॉलेशन अपग्रेड के दौरान अपने वर्तमान उपयोगकर्ताओं को बनाए रखते हैं और दोबारा सेटअप नहीं दिखाते हैं।
ओपनआईडी कनेक्ट सिंगल साइन-ऑन
Repovio स्थानीय साइन-इन के अलावा एक वैकल्पिक ओपनआईडी कनेक्ट प्रदाता का समर्थन करता है। एक सिस्टम प्रशासक इसे सेटिंग्स → प्रमाणीकरण के अंतर्गत कॉन्फ़िगर करता है। यह लॉगिन GitHub, GitLab, Forgejo, और Gitea प्रदाता OAuth से अलग है: OIDC एक Repovio उपयोगकर्ता की पहचान करता है, जबकि प्रदाता OAuth केवल प्रदाता संसाधनों तक पढ़ने की पहुंच प्रदान करता है।
प्रदाता को कॉन्फ़िगर करने से पहले सटीक बाहरी पहुंच योग्य एपीआई कॉलबैक यूआरएल सेट करें:
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 के लिए, प्राधिकरण-कोड प्रवाह, उपरोक्त सटीक कॉलबैक URL और openid, profile, और email स्कोप के साथ एक
OAuth2/OpenID प्रदाता बनाएं। एक स्कोप मैपिंग जोड़ें जो चुने गए समूह के दावे को समूह नामों की एक सरणी के रूप में लौटाता
है, प्रदाता को एक एप्लिकेशन से जोड़ता है, फिर एप्लिकेशन के जारीकर्ता, क्लाइंट आईडी और क्लाइंट सीक्रेट को Repovio में
कॉपी करें।
अन्य मानक-अनुपालक प्रदाता के लिए, प्राधिकरण कोड फ़्लो सक्षम करें, S256 PKCE की आवश्यकता है, सटीक कॉलबैक URL पंजीकृत
करें, और एक स्थिर sub प्लस आईडी टोकन या यूजरइन्फो प्रतिक्रिया में कॉन्फ़िगर समूह दावा शामिल करें। Repovio केवल असममित
आईडी-टोकन हस्ताक्षर स्वीकार करता है और अहस्ताक्षरित और HMAC-हस्ताक्षरित टोकन को अस्वीकार करता है।
OIDC एपीआई अनुबंध
| विधि | पथ | पहुंच | उद्देश्य |
|---|---|---|---|
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 वाली
निर्देशिका से एक स्थानीय खाते को रीसेट कर सकता है। प्रतिस्थापन पासवर्ड को बिना दोहराए या शेल इतिहास में संग्रहीत किए
बिना पढ़ें, फिर इसे मानक इनपुट पर एपीआई कंटेनर में भेजें:
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-प्रबंधित खातों को अस्वीकार कर देता है क्योंकि उनके पास कोई स्थानीय पासवर्ड नहीं है।
स्थानीय पहुँच समूह
रिपॉज़िटरी के समूह पहुँच में Viewer या Manager दें, बदलें या हटाएँ। सीधे और विरासत अधिकार जुड़ते हैं; Manager प्राथमिक है। प्रबंधन के लिए वैश्विक Manager भूमिका भी चाहिए; सिस्टम व्यवस्थापक अप्रतिबंधित हैं। निरसन अगले अनुरोध पर लागू है, जब तक अन्य अनुदान मौजूद न हो। समूह स्थानीय तथा OIDC खाते लेते हैं, OIDC claims से सिंक नहीं होते।