ऑन-प्रेमिस इंस्टॉलेशन के लिए सिंगल साइन-ऑन
यह पेज ऑन-प्रेमिस MonoChat इंस्टॉलेशन चलाने वालों के लिए है। यह बताता है कि अपने कर्मचारियों को OpenID Connect (OIDC) के ज़रिए अपनी कंपनी के पहचान प्रदाता (IdP) से साइन इन कैसे करने दें, जैसे Microsoft Entra ID, Okta, Keycloak, AD FS या Google Workspace।
सिंगल साइन-ऑन पूरे इंस्टॉलेशन के लिए सर्वर सेटिंग्स में सेट किया जाता है, हर संगठन के लिए अलग से नहीं। एक MonoChat खाता कई संगठनों से जुड़ा हो सकता है, और लोग कोई संगठन चुनने से पहले साइन इन करते हैं। साइन इन करने से खाता मिलता है, पहुँच नहीं: किसी व्यक्ति को कोई संगठन तभी दिखता है जब वह संगठन उसे आमंत्रित करे और कोई भूमिका दे।
साइन इन कैसे काम करता है
जब कोई साइन-इन पेज पर SSO बटन पर क्लिक करता है, तो MonoChat आपके IdP का साइन-इन पेज एक पॉप-अप में खोलता है। वहाँ साइन इन करने के बाद IdP ब्राउज़र को एक बार इस्तेमाल होने वाले कोड के साथ MonoChat पर वापस भेजता है। MonoChat सर्वर कोड को ID टोकन से बदलता है और व्यक्ति को साइन इन कराने से पहले उसकी जाँच करता है:
- IdP के एंडपॉइंट और साइनिंग कुंजियाँ हर साइन इन पर उसके डिस्कवरी दस्तावेज़
<issuer>/.well-known/openid-configurationसे पढ़ी जाती हैं। - साइन इन PKCE (S256), एक
stateऔर एकnonceके साथ authorization code फ़्लो इस्तेमाल करता है। साइन-इन अनुरोध 10 मिनट तक मान्य रहता है और एक बार इस्तेमाल हो सकता है। - ID टोकन IdP की किसी कुंजी से हस्ताक्षरित होना चाहिए और उसमें आपका issuer (
iss), आपका client ID (aud), अनुरोध काnonceऔर ऐसी समाप्ति (exp) होनी चाहिए जो अभी बीती न हो। - ID टोकन में व्यक्ति का ई-मेल पता (
email) होना चाहिए। अगर IdP बताए कि पता सत्यापित नहीं है (email_verified: false), तो साइन इन अस्वीकार हो जाता है।
1. MonoChat को अपने पहचान प्रदाता में रजिस्टर करें
अपने IdP में MonoChat के लिए इन मानों के साथ एक एप्लिकेशन (क्लाइंट) बनाएँ:
| IdP में सेटिंग | मान |
|---|---|
| एप्लिकेशन का प्रकार | client secret वाला वेब एप्लिकेशन (गोपनीय क्लाइंट) |
| साइन-इन रीडायरेक्ट URI | https://<your MonoChat domain>/api/oauth/oidc/redirect |
| ग्रांट का प्रकार | Authorization code |
| स्कोप | openid email profile |
| टोकन एंडपॉइंट पर क्लाइंट प्रमाणीकरण | HTTP Basic प्रमाणीकरण से भेजा गया client secret (client_secret_basic) |
सुनिश्चित करें कि ID टोकन में email क्लेम हो। client ID, client secret और issuer नोट कर लें। issuer, IdP के डिस्कवरी दस्तावेज़ में issuer मान है। सामान्य रूप:
| पहचान प्रदाता | Issuer |
|---|---|
| Microsoft Entra ID | https://login.microsoftonline.com/<tenant id>/v2.0 |
| Okta | https://<your Okta domain>/oauth2/default या https://<your Okta domain> |
| Keycloak | https://<your Keycloak host>/realms/<realm> |
| AD FS (2016 या नया) | https://<your AD FS host>/adfs |
| Google Workspace | https://accounts.google.com |
ब्राउज़र में <issuer>/.well-known/openid-configuration खोलें और उसका issuer मान बिल्कुल वैसा ही कॉपी करें, अंत में / हो तो उसके साथ। दोनों अलग हों तो MonoChat किसी को साइन इन नहीं करने देता।
2. सेटिंग्स जोड़ें
सर्वर सेटिंग्स में oidc ब्लॉक जोड़ें और MonoChat को फिर से शुरू करें। सार्वजनिक ब्लॉक public.oauth के नीचे और गुप्त ब्लॉक oauth के नीचे जाता है:
{
"oauth": {
"oidc": {
"clientSecret": "<client secret>",
"autoCreateAccounts": true,
"allowedEmailDomains": ["company.com"]
}
},
"public": {
"oauth": {
"oidc": {
"issuer": "https://login.microsoftonline.com/<tenant id>/v2.0",
"clientId": "<client id>",
"redirectPath": "/api/oauth/oidc/redirect",
"scope": "openid email profile",
"buttonLabel": "Sign in with Company SSO"
}
}
}
}
| सेटिंग | यह क्या करती है |
|---|---|
public.oauth.oidc.issuer | चरण 1 का issuer |
public.oauth.oidc.clientId | चरण 1 का client ID |
public.oauth.oidc.redirectPath | चरण 1 के रीडायरेक्ट URI का पाथ |
public.oauth.oidc.scope | वे स्कोप जो MonoChat माँगता है |
public.oauth.oidc.buttonLabel | साइन-इन बटन का टेक्स्ट। खाली हो तो व्यक्ति की भाषा में "SSO से साइन इन करें" दिखता है |
oauth.oidc.clientSecret | client secret। यह सर्वर पर रहता है |
oauth.oidc.autoCreateAccounts | true व्यक्ति के पहले SSO साइन इन पर MonoChat खाता बनाता है, तब भी जब साइन-अप केवल आमंत्रण से हो (public.disableSignup) |
oauth.oidc.allowedEmailDomains | केवल वे लोग SSO से साइन इन कर सकते हैं जिनका ई-मेल पता इनमें से किसी डोमेन पर हो। हर डोमेन की अनुमति के लिए इसे न जोड़ें |
इसके बाद SSO बटन साइन-इन पेज पर दिखता है।
कौन साइन इन कर सकता है
- नए लोग।
autoCreateAccounts: trueके साथ व्यक्ति का पहला SSO साइन इन उसका खाता बनाता है। इसके बिना खाता तभी बनता है जबpublic.disableSignupबंद हो या व्यक्ति किसी आमंत्रण से साइन इन करे। - जिन लोगों का उसी ई-मेल पते से पहले से खाता है।
oauth.autoMerge: trueके साथ पहला SSO साइन इन SSO को मौजूदा खाते से जोड़ देता है, लेकिन तभी जब ID टोकन बताए कि पता सत्यापित है (email_verified: true)। अन्यथा, औरautoMergeके बिना हमेशा, MonoChat व्यक्ति से एक बार पासवर्ड से साइन इन करने को कहता है और फिर SSO को खाते से जोड़ता है; किसी संगठन का आमंत्रण स्वीकार करने से भी SSO जुड़ जाता है। Microsoft Entra ID और AD FSemail_verifiedनहीं भेजते, इसलिए उनके साथ पासवर्ड साइन इन तब तक अनुमत रखें जब तक सभी SSO न जोड़ लें, या लोगों को फिर से आमंत्रित करें। - अनुमत डोमेन।
allowedEmailDomainsके साथ किसी दूसरे डोमेन का पता अस्वीकार होता है। Google Workspace (issuerhttps://accounts.google.com) के लिए MonoChat ई-मेल पते के बजायhdक्लेम, यानी खाते का Workspace डोमेन, जाँचता है, क्योंकि निजी Google खाता किसी भी डोमेन का पता इस्तेमाल कर सकता है।
SSO को एकमात्र साइन-इन तरीका बनाएँ
public.auth.methodsको["oidc"]पर सेट करें। तब साइन-इन पेज केवल SSO बटन दिखाता है, और सर्वर पासवर्ड और सोशल साइन इन अस्वीकार करता है।- रूट सुपर उपयोगकर्ता (रूट संगठन में root super भूमिका वाले उपयोगकर्ता) अब भी
/auth/signin?fallback=1पर अपने पासवर्ड से साइन इन कर सकते हैं, ताकि IdP बंद होने पर इंस्टॉलेशन कभी लॉक न हो। - नए SSO खातों को अपने संगठन खोलने से रोकने के लिए
public.disableTenantCreationकोtrueपर सेट करें। तब किसी संगठन के अंतर्गत संगठन केवल वही लोग बना सकते हैं जिनकी उसमें सही भूमिका हो।
नेटवर्क
/api/oauth/oidc/authorizeऔर अपनाredirectPathसाइन इन करने वालों के लिए पहुँच योग्य रखें। दोनों उनके ब्राउज़र में खुलते हैं।- MonoChat सर्वर को HTTPS से आपके IdP के डिस्कवरी दस्तावेज़, टोकन एंडपॉइंट और कुंजी सेट (
jwks_uri) तक पहुँचना चाहिए।
सीमाएँ
- MonoChat मोबाइल ऐप अभी SSO नहीं देता। अगर आप SSO को एकमात्र साइन-इन तरीका बनाते हैं, तो एजेंट मोबाइल ऐप में साइन इन नहीं कर पाएँगे।
- MonoChat से साइन आउट करने से व्यक्ति IdP से साइन आउट नहीं होता, और IdP से साइन आउट करने से अभी MonoChat से साइन आउट नहीं होता।
अपना सेटअप जाँचें
- साइन-इन पेज खोलें और SSO बटन पर क्लिक करें। अपने IdP में साइन इन करें; पॉप-अप बंद हो जाता है और आप MonoChat में साइन इन हो जाते हैं।
- ऐसे व्यक्ति से साइन इन करें जिसका अभी MonoChat खाता नहीं है, और पुष्टि करें कि खाता बन गया (या अस्वीकार हुआ, अगर आपने
autoCreateAccountsचालू नहीं किया)। - अगर आपने
allowedEmailDomainsसेट किया है, तो दूसरे डोमेन के व्यक्ति से कोशिश करें और पुष्टि करें कि साइन इन अस्वीकार हुआ। - अगर आपने
public.auth.methodsसेट किया है, तो पुष्टि करें कि पासवर्ड साइन इन अस्वीकार होता है, और रूट सुपर उपयोगकर्ता अब भी/auth/signin?fallback=1पर साइन इन कर सकता है।