सिंगल साइन-ऑन (OIDC)¶
लोगों को उस पहचान प्रदाता (identity provider) से साइन इन करने दें जो आप पहले से चलाते हैं (Keycloak, Authentik, Authelia, Google, या कोई भी दूसरा OpenID Connect प्रदाता): तब वेब और Android ऐप के साइन-इन पेज पर पासवर्ड वाले फ़ॉर्म के पास SSO से साइन इन करें दिखता है। एडमिन के लिए दो कदम: प्रदाता के यहाँ Evey को दर्ज करें, फिर एडमिन पैनल में एक कार्ड भरें।
1. प्रदाता के यहाँ Evey को दर्ज करें¶
प्रदाता के यहाँ एक client (या application) बनाएँ: Authorization Code grant, scopes
openid email profile, एक client secret, और वे दो पते जो सिंगल साइन-ऑन
(SSO) कार्ड पर ये पते अपने प्रदाता के यहाँ दर्ज करें के नीचे दिखते हैं:
| फ़ील्ड | मान |
|---|---|
| रीडायरेक्ट URI | https://<your address>/api/v1/auth/oidc/callback |
| साइन आउट के बाद रीडायरेक्ट URI | https://<your address>/login |
दोनों सर्वर के सार्वजनिक पते (एडमिन → रिमोट एक्सेस) से बनते हैं: अगर लोग Evey तक किसी दूसरे पते से पहुँचते हैं, तो पहले वह सेट करें।
2. Evey को कॉन्फ़िगर करें¶
एडमिन → सर्वर कॉन्फ़िग → सिंगल साइन-ऑन (SSO):
| फ़ील्ड | असर |
|---|---|
| सिंगल साइन-ऑन चालू करें | साइन-इन स्क्रीन पर SSO बटन दिखाता है। |
| जारीकर्ता (Issuer) URL | प्रदाता का पता; Evey उसके नीचे /.well-known/openid-configuration पढ़ता है। |
| क्लाइंट ID, क्लाइंट सीक्रेट | ऊपर दर्ज किया गया client। सीक्रेट सर्वर पर रखा जाता है और फिर कभी नहीं दिखता; बिंदुओं को वैसे ही छोड़ने पर वह बना रहता है। |
| अनुमत ई-मेल डोमेन | अल्पविराम से अलग। सेट होने पर सिर्फ़ इन्हीं पतों को माना जाता है, और प्रदाता को पते की पुष्टि करनी होती है। |
| बटन का लेबल | ज़रूरी नहीं; "SSO से साइन इन करें" की जगह लेता है। |
| सत्यापित ई-मेल से मौजूदा खातों से जोड़ें | डिफ़ॉल्ट रूप से चालू। देखें कौन साइन इन कर सकता है। |
| नए SSO उपयोगकर्ताओं के लिए खाते बनाएँ | बंद, जब तक ई-मेल डोमेन की अनुमति न दी गई हो। देखें कौन साइन इन कर सकता है। |
| नए SSO खातों की लाइब्रेरी पहुँच | सभी लाइब्रेरी, या केवल चुनी गई लाइब्रेरी। |
कनेक्शन जाँचें देखता है कि issuer जवाब देता है। SSO सेटिंग्स सहेजें तुरंत लागू होता है, बिना रीस्टार्ट के। स्थिति वाली लाइन बताती है कि प्रदाता तक पहुँचा जा सकता है या नहीं, और न पहुँचा जा सके तो आखिरी एरर भी।
खाते और साइन-इन वाले
EVEY_OIDC_* वेरिएबल वैकल्पिक तरीका (fallback) हैं: कार्ड बताता है कि उसके मान उनसे
आ रहे हैं, और कार्ड सेव करने पर कार्ड के मान लागू होते हैं।
प्रदाता कभी सर्वर के ज़रूरी रास्ते (critical path) पर नहीं होता
प्रदाता बंद हो तब भी सर्वर शुरू हो जाता है, जब तक प्रदाता तक पहुँचा नहीं जा सकता तब तक SSO बटन छिपा रहता है, और पासवर्ड से साइन इन काम करता रहता है। अगली साइन-इन कोशिश पर प्रदाता से फिर संपर्क किया जाता है, ज़्यादा से ज़्यादा हर 30 सेकंड में एक बार।
कौन साइन इन कर सकता है¶
- जो खाता इस प्रदाता से पहले साइन इन कर चुका है, वह फिर से साइन इन करता है, बशर्ते वह अक्षम न हो।
- नहीं तो, सत्यापित ई-मेल से मौजूदा खातों से जोड़ें चालू हो, तो उसी ई-मेल वाला मौजूदा खाता प्रदाता से जोड़ दिया जाता है और साइन इन हो जाता है, लेकिन सिर्फ़ तब जब प्रदाता पते की पुष्टि करे। खाते का पासवर्ड बना रहता है। एडमिन खाते इस तरह कभी नहीं जोड़े जाते।
- नहीं तो, नए SSO उपयोगकर्ताओं के लिए खाते बनाएँ चालू हो, तो एक नया खाता
बनता है, एक प्रोफ़ाइल और कार्ड में चुनी गई लाइब्रेरी पहुँच के साथ। उसका
उपयोगकर्ता नाम प्रदाता का
preferred_usernameहोता है, वह न हो तो ई-मेल का@से पहले वाला हिस्सा; जो नाम पहले से लिया जा चुका है, उसके आगे एक छोटा suffix जोड़ा जाता है।
खाता बनाना डिफ़ॉल्ट रूप से बंद क्यों है
Google जैसे सार्वजनिक प्रदाता के साथ, वहाँ खाता रखने वाला कोई भी व्यक्ति वरना आपके सर्वर पर भी खाता पा सकता था। खाता बनाना डिफ़ॉल्ट रूप से सिर्फ़ तब चालू होता है जब अनुमत ई-मेल डोमेन यह सीमित करता है कि कौन योग्य है। जब यह बंद है, तो सिर्फ़ मौजूदा खाते SSO से साइन इन कर सकते हैं।
जब साइन इन मना किया जाता है, तो साइन-इन पेज वजह बताता है: ई-मेल डोमेन की अनुमति नहीं है, कोई खाता मेल नहीं खाता और साइन-अप बंद है, खाता अक्षम है, खाता है लेकिन जोड़ा नहीं जा सका, या प्रदाता उपलब्ध नहीं है।
साइन आउट करना¶
जब प्रदाता एक logout endpoint देता है, तो SSO से साइन इन के बाद Evey से साइन आउट करने पर प्रदाता पर भी सेशन खत्म हो जाता है, फिर Evey के साइन-इन पेज पर वापसी होती है। कार्ड बताता है कि प्रदाता इसे सपोर्ट करता है या नहीं।