मुख्य कंटेंट तक स्किप करें

ऑन-प्रेमिस इंस्टॉलेशन के लिए सिंगल साइन-ऑन

यह पेज ऑन-प्रेमिस 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 वाला वेब एप्लिकेशन (गोपनीय क्लाइंट)
साइन-इन रीडायरेक्ट URIhttps://<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 IDhttps://login.microsoftonline.com/<tenant id>/v2.0
Oktahttps://<your Okta domain>/oauth2/default या https://<your Okta domain>
Keycloakhttps://<your Keycloak host>/realms/<realm>
AD FS (2016 या नया)https://<your AD FS host>/adfs
Google Workspacehttps://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.clientSecretclient secret। यह सर्वर पर रहता है
oauth.oidc.autoCreateAccountstrue व्यक्ति के पहले 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 FS email_verified नहीं भेजते, इसलिए उनके साथ पासवर्ड साइन इन तब तक अनुमत रखें जब तक सभी SSO न जोड़ लें, या लोगों को फिर से आमंत्रित करें।
  • अनुमत डोमेन। allowedEmailDomains के साथ किसी दूसरे डोमेन का पता अस्वीकार होता है। Google Workspace (issuer https://accounts.google.com) के लिए MonoChat ई-मेल पते के बजाय hd क्लेम, यानी खाते का Workspace डोमेन, जाँचता है, क्योंकि निजी Google खाता किसी भी डोमेन का पता इस्तेमाल कर सकता है।

SSO को एकमात्र साइन-इन तरीका बनाएँ​

  1. public.auth.methods को ["oidc"] पर सेट करें। तब साइन-इन पेज केवल SSO बटन दिखाता है, और सर्वर पासवर्ड और सोशल साइन इन अस्वीकार करता है।
  2. रूट सुपर उपयोगकर्ता (रूट संगठन में root super भूमिका वाले उपयोगकर्ता) अब भी /auth/signin?fallback=1 पर अपने पासवर्ड से साइन इन कर सकते हैं, ताकि IdP बंद होने पर इंस्टॉलेशन कभी लॉक न हो।
  3. नए SSO खातों को अपने संगठन खोलने से रोकने के लिए public.disableTenantCreation को true पर सेट करें। तब किसी संगठन के अंतर्गत संगठन केवल वही लोग बना सकते हैं जिनकी उसमें सही भूमिका हो।

नेटवर्क​

  • /api/oauth/oidc/authorize और अपना redirectPath साइन इन करने वालों के लिए पहुँच योग्य रखें। दोनों उनके ब्राउज़र में खुलते हैं।
  • MonoChat सर्वर को HTTPS से आपके IdP के डिस्कवरी दस्तावेज़, टोकन एंडपॉइंट और कुंजी सेट (jwks_uri) तक पहुँचना चाहिए।

सीमाएँ​

  • MonoChat मोबाइल ऐप अभी SSO नहीं देता। अगर आप SSO को एकमात्र साइन-इन तरीका बनाते हैं, तो एजेंट मोबाइल ऐप में साइन इन नहीं कर पाएँगे।
  • MonoChat से साइन आउट करने से व्यक्ति IdP से साइन आउट नहीं होता, और IdP से साइन आउट करने से अभी MonoChat से साइन आउट नहीं होता।

अपना सेटअप जाँचें​

  1. साइन-इन पेज खोलें और SSO बटन पर क्लिक करें। अपने IdP में साइन इन करें; पॉप-अप बंद हो जाता है और आप MonoChat में साइन इन हो जाते हैं।
  2. ऐसे व्यक्ति से साइन इन करें जिसका अभी MonoChat खाता नहीं है, और पुष्टि करें कि खाता बन गया (या अस्वीकार हुआ, अगर आपने autoCreateAccounts चालू नहीं किया)।
  3. अगर आपने allowedEmailDomains सेट किया है, तो दूसरे डोमेन के व्यक्ति से कोशिश करें और पुष्टि करें कि साइन इन अस्वीकार हुआ।
  4. अगर आपने public.auth.methods सेट किया है, तो पुष्टि करें कि पासवर्ड साइन इन अस्वीकार होता है, और रूट सुपर उपयोगकर्ता अब भी /auth/signin?fallback=1 पर साइन इन कर सकता है।