अध्याय 16 क्लाइंट, ग्रुपवेयर & CLI एडमिन: #pIdentity

पहचान स्रोत: Active Directory, LDAP, Entra ID, Keycloak और SCIM

Admin > Identity sources के अंतर्गत आप किसी टेनेंट या एकल डोमेन को Active Directory या LDAP से (bind द्वारा साइन-इन, उपयोगकर्ताओं, नेस्टेड समूहों और संपर्कों का सिंक) या Microsoft Entra ID, Keycloak और अन्य OpenID Connect प्रदाताओं से (SSO द्वारा साइन-इन, SCIM 2.0 द्वारा प्रोविज़निंग) जोड़ते हैं। स्थानीय खाते इनके साथ पूरी तरह उपयोग योग्य रहते हैं (मिश्रित संचालन)। हर खाते का ठीक एक स्रोत होता है; मिलान ExternalId (AD objectGUID, Entra objectId, LDAP entryUUID) से होता है, कभी केवल मेल पते से नहीं। स्रोत द्वारा प्रबंधित फ़ील्ड एडमिन में और "मेरा खाता" में केवल-पढ़ने योग्य होते हैं।

संचालन सुझाव और आर्किटेक्चर नोट

ब्रेक-ग्लास एक्सेस के रूप में बिना स्रोत वाला कम से कम एक स्थानीय सर्वर एडमिन रखें। इसे कभी AD से नहीं लिया जाता, यह कभी SSO मेल मिलान के माध्यम से साइन इन नहीं करता और AD या Entra पहुँच से बाहर होने पर भी काम करता है। nextxch लॉकआउट सीमा (डिफ़ॉल्ट 5 विफलताएँ) को AD खाता लॉकआउट सीमा से नीचे सेट करें: तब हमलावर कभी भी AD खाता लॉक नहीं कर पाते, क्योंकि nextxch बाइंड से पहले ही रुक जाता है।

Entra ID: साइन-इन और SCIM के लिए ऐप पंजीकरण

साइन-इन: Admin > Identity sources से redirect URI के साथ अपना ऐप पंजीकरण (वेब प्लेटफ़ॉर्म)। प्रावधान: प्रावधान मोड "Automatic", nextxch से टेनेंट URL और सीक्रेट टोकन के साथ non-gallery enterprise app।

संदर्भ / कॉन्फ़िगरेशन
1. Entra admin center > App registrations > New registration
   Name:            nextxch Webmail
   Account types:   Accounts in this organizational directory only (single tenant)
   Redirect URI:    Web  https://mail.example.com/api/auth/sso/callback
2. Certificates & secrets > New client secret  -> enter it in nextxch as client secret
3. Token configuration > Add optional claim: ID token "email" (otherwise preferred_username = UPN is used)
4. App roles (optional): e.g. create "Nextxch.TenantAdmins", assign users,
   in nextxch: claim "roles", value "Nextxch.TenantAdmins" -> role TenantAdmin
5. nextxch Admin > Identity sources > Add Entra ID / OIDC
   Authority:  https://login.microsoftonline.com/<directory id>/v2.0
   Client id:  <application id>
6. SCIM: Enterprise applications > New application > Create your own (non-gallery)
   Provisioning > Automatic
   Tenant URL:    https://mail.example.com/scim/v2
   Secret token:  nxscim_...   (Admin > Identity sources > Create SCIM token)
   Mappings: userName <- userPrincipalName, emails[type eq "work"].value <- mail,
             externalId <- objectId (recommended) or mailNickname

सेटिंग्स, डिफ़ॉल्ट मान और बेस्ट प्रैक्टिस

सेटिंग / स्थान विवरण डिफ़ॉल्ट मान उत्पादन बेस्ट प्रैक्टिस
Active Directory: Dienstkonto व्यवस्थापक अधिकारों के बिना सामान्य डोमेन उपयोगकर्ता, केवल पढ़ने के लिए (डिफ़ॉल्ट "Authenticated Users" पठन पहुँच पर्याप्त है)। पासवर्ड की समय-सीमा समाप्त नहीं होती। एन्क्रिप्टेड रूप से संग्रहीत, कभी दिखाया नहीं जाता। CN=svc-nextxch,OU=Service,... डोमेन एडमिन नहीं। फ़ोटो और proxyAddresses के लिए पढ़ने की अनुमति पर्याप्त है। वैकल्पिक रूप से "Log on to" को DC तक सीमित करें।
LDAPS 636 / StartTLS 389 डोमेन कंट्रोलरों से एन्क्रिप्टेड कनेक्शन। कई DC क्रम से आज़माए जाते हैं (फेलओवर), प्रति DC टाइमआउट कॉन्फ़िगर करने योग्य। LDAPS, 10 s nextxch सर्वर पर DC प्रमाणपत्र (या आंतरिक CA) पर भरोसा करें। "प्रमाणपत्र की जाँच न करें" का उपयोग केवल सेटअप के दौरान थोड़े समय के लिए करें।
Anmeldung (alle Protokolle) Webmail, एडमिन, IMAP, SMTP, POP3, ActiveSync, EWS, MAPI और DAV, bind द्वारा AD पासवर्ड की जाँच करते हैं। लॉगिन नाम: मेल पता, userPrincipalName, sAMAccountName या DOMAIN\user। Cache 15 min (Hash) छोटा साइन-इन कैश केवल एक HMAC संग्रहीत करता है, कभी पासवर्ड नहीं, और DC के थोड़े समय के आउटेज के दौरान साइन-इन चालू रखता है। 0 इसे बंद कर देता है।
Abgleich: Benutzer, Gruppen, Kontakte mail और proxyAddresses (SMTP: = प्राथमिक, smtp: = उपनाम), displayName, givenName, sn, telephoneNumber, mobile, title, department, company, physicalDeliveryOfficeName, manager, thumbnailPhoto; userAccountControl और accountExpires मेलबॉक्स को अक्षम करते हैं। मेल-सक्षम समूह वितरण सूचियाँ बन जाते हैं (LDAP_MATCHING_RULE_IN_CHAIN के माध्यम से नेस्टेड), संपर्क पता पुस्तिका में दिखाई देते हैं। Delta 15 min, voll 02:00 पहले रन से पहले "पूर्वावलोकन" का उपयोग करें: बिना कुछ बदले दिखाता है कि कौन-से खाते बनाए, अपनाए या अक्षम किए जाएँगे। किसी "मेल उपयोगकर्ता" समूह पर फ़िल्टर करें।
Gelöschte Objekte जब कोई ऑब्जेक्ट AD से गायब हो जाता है (या Entra SCIM DELETE भेजता है), तो मेलबॉक्स तुरंत अक्षम कर दिया जाता है। ग्रेस अवधि के बाद व्यवस्थापक निर्णय लेता है: हटाएँ, साझा मेलबॉक्स के रूप में रखें या अक्षम रखें। 30 Tage नाम बदलना हटाना नहीं है: पुराना प्राथमिक पता उपनाम के रूप में बना रहता है।
Vorlagen Microsoft AD, Samba AD, OpenLDAP, Univention Corporate Server और FreeIPA के लिए एट्रिब्यूट मैपिंग; हर फ़ील्ड को ओवरराइड किया जा सकता है या "-" से बंद किया जा सकता है। Active Directory समूह फ़िल्टर के लिए OpenLDAP को memberOf overlay की आवश्यकता होती है; वहाँ nextxch नेस्टेड समूहों को स्वयं हल करता है।
OIDC (Entra ID, Keycloak) सर्वर पर PKCE के साथ Authorization code flow, स्वचालित की रोलओवर के साथ डिस्कवरी और JWKS, RS256/ES256, iss, aud, exp, nonce और Entra टेनेंट tid की जाँच। समूह या ऐप रोल क्लेम User, TenantAdmin और ServerAdmin पर मैप होते हैं। Knopf auf der Anmeldeseite Keycloak: authority https://kc.example.com/realms/<realm>, standard flow वाला confidential client, redirect URI ऊपर के अनुसार; भूमिकाएँ claim realm_access.roles के माध्यम से।
Lokale Passwörter pro Domain Webmail/एडमिन और प्रोटोकॉल के लिए अलग-अलग बंद किया जा सकता है। Entra पासवर्ड कभी nextxch तक नहीं पहुँचते: मेल ऐप (Outlook, iPhone, Thunderbird) ऐप पासवर्ड का उपयोग करते हैं; वेबमेल एक सहायक के साथ सेटअप में मार्गदर्शन करता है। An प्रति प्रोटोकॉल आप अतिरिक्त रूप से "केवल OAuth / Kerberos" लागू कर सकते हैं (अध्याय 16a और 16b देखें)। स्रोत अनुमति दे तो AD उपयोगकर्ता वेबमेल में अपना पासवर्ड बदल सकते हैं।
Kennwort ändern (AD / LDAP) "Users may change their password" सक्षम होने पर वेबमेल Settings > Security के अंतर्गत एक फ़ॉर्म दिखाता है (वर्तमान और नया पासवर्ड)। AD: पुराने पासवर्ड के साथ LDAPS पर unicodePwd, इसलिए AD जटिलता, पासवर्ड इतिहास और न्यूनतम आयु लागू होती हैं; अन्य डायरेक्टरी: RFC 3062। एडमिन खाता संवाद में पासवर्ड रीसेट करते हैं (वैकल्पिक रूप से "change at next logon")। Aus एडमिन रीसेट के लिए सेवा खाते को उपयोगकर्ता OU पर केवल "Reset password" प्रत्यायोजित करें। पासवर्ड कभी लॉग नहीं किए जाते।