#pIdentity
Kerberos SSO: डोमेन PC, Outlook और मेल ऐप्स के लिए बिना पासवर्ड साइन-इन
Kerberos के साथ, कंपनी नेटवर्क पर Windows PC बिना पासवर्ड प्रॉम्प्ट के साइन इन करते हैं: वेबमेल और एडमिन SPNEGO ("Sign in with Windows") के माध्यम से, Outlook, Negotiate के साथ MAPI, EWS, ActiveSync और Autodiscover के माध्यम से, Thunderbird और अन्य मेल ऐप्स SASL GSSAPI के साथ IMAP, SMTP, POP3 और ManageSieve के माध्यम से। nextxch अपलोड किए गए keytab से टिकट स्वयं सत्यापित करता है; यह Linux पर और उन Windows सर्वरों पर काम करता है जो डोमेन सदस्य नहीं हैं। जब nextxch किसी डोमेन सदस्य पर चलता है, तो keytab के बजाय मशीन खाते का उपयोग किया जा सकता है। NTLM जानबूझकर समर्थित नहीं है।
SPN में होस्ट नाम ठीक वही होना चाहिए जिसका उपयोग क्लाइंट करते हैं (उदा. mail.example.com) और वह A रिकॉर्ड के माध्यम से रिज़ॉल्व होना चाहिए। सेवा खाते के हर पासवर्ड परिवर्तन के बाद keytab फिर से बनाएँ और अपलोड करें; "Check Kerberos" हर SPN का कुंजी संस्करण और एन्क्रिप्शन दिखाता है।
Active Directory: सेवा खाता, SPN और keytab
डोमेन व्यवस्थापक के रूप में PowerShell। पहले SPN के लिए ktpass एक बार चलाएँ; उसी खाते के सभी अन्य SPN समान कुंजी साझा करते हैं और उन्हें केवल setspn चाहिए।
# 1. Service account (password never expires, AES only)
New-ADUser -Name svc-nextxch -AccountPassword (Read-Host -AsSecureString) `
-Enabled $true -PasswordNeverExpires $true -KerberosEncryptionType AES256
# 2. Register the service principals (host name = name clients use)
setspn -S HTTP/mail.example.com CORP\svc-nextxch
setspn -S imap/mail.example.com CORP\svc-nextxch
setspn -S smtp/mail.example.com CORP\svc-nextxch
setspn -S pop/mail.example.com CORP\svc-nextxch
setspn -S sieve/mail.example.com CORP\svc-nextxch
# 3. Create the keytab (resets the account password)
ktpass -princ HTTP/mail.example.com@CORP.LOCAL -mapuser CORP\svc-nextxch `
-crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out nextxch.keytab
# 4. nextxch Admin > Identity sources > Kerberos
# realm CORP.LOCAL, SPNs as above, upload the keytab, "Check Kerberos"
# Machine account mode (nextxch on domain member MAILSRV, no keytab):
setspn -S HTTP/mail.example.com CORP\MAILSRV$
setspn -S imap/mail.example.com CORP\MAILSRV$
MIT Kerberos, Heimdal और FreeIPA
प्रिंसिपल बनाएँ और उनकी कुंजियों को keytab में निर्यात करें; FreeIPA: ipa service-add और ipa-getkeytab।
# MIT / Heimdal
kadmin -q "addprinc -randkey HTTP/mail.firma.de@FIRMA.LOCAL"
kadmin -q "addprinc -randkey imap/mail.firma.de@FIRMA.LOCAL"
kadmin -q "addprinc -randkey smtp/mail.firma.de@FIRMA.LOCAL"
kadmin -q "ktadd -k /tmp/nextxch.keytab HTTP/mail.firma.de imap/mail.firma.de smtp/mail.firma.de"
# FreeIPA
ipa service-add HTTP/mail.firma.de
ipa service-add imap/mail.firma.de
ipa-getkeytab -s ipa.firma.local -p HTTP/mail.firma.de -k /tmp/nextxch.keytab
ipa-getkeytab -s ipa.firma.local -p imap/mail.firma.de -k /tmp/nextxch.keytab
# Test vom Client:
kinit anna && curl --negotiate -u : https://mail.firma.de/api/auth/kerberos
वास्तविक AD के साथ मैनुअल परीक्षण
स्वचालित परीक्षण जनरेट किए गए keytab से टिकट सत्यापित करते हैं। वास्तविक डोमेन कंट्रोलर के साथ इस प्रकार भी परीक्षण करें:
# Auf einem Domänen-PC als normaler Benutzer:
klist purge
Invoke-WebRequest https://mail.firma.de/api/auth/kerberos -UseDefaultCredentials
klist # zeigt Ticket für HTTP/mail.firma.de
# Erwartet: 200 {"ok":true,"email":"anna@firma.de"}
# IMAP mit GSSAPI (Linux-Client in der Domäne):
kinit anna@FIRMA.LOCAL
curl -v --login-options AUTH=GSSAPI --negotiate -u : imaps://mail.firma.de/INBOX
सेटिंग्स, डिफ़ॉल्ट मान और बेस्ट प्रैक्टिस
| सेटिंग / स्थान | विवरण | डिफ़ॉल्ट मान | उत्पादन बेस्ट प्रैक्टिस |
|---|---|---|---|
Keytab |
ktpass, ktutil और kadmin द्वारा लिखा गया MIT प्रारूप। सर्वर कीरिंग के साथ एन्क्रिप्टेड रूप में संग्रहीत और फिर कभी नहीं दिखाया जाता; एडमिन पेज केवल principal, kvno और एन्क्रिप्शन सूचीबद्ध करता है। | Keytab-Modus |
AES256 का उपयोग करें। RC4 कुंजियाँ काम करती हैं, लेकिन "Check Kerberos" उनके बारे में चेतावनी देता है। |
Benutzerzuordnung |
Kerberos प्रिंसिपल (anna@CORP.LOCAL) को पहचान स्रोत के माध्यम से मैप किया जाता है: userPrincipalName, sAMAccountName या मेल पता। केवल कॉन्फ़िगर किया गया realm (और अन्य अनुमत realm) स्वीकार किया जाता है। | Realm Pflicht |
पहले AD पहचान स्रोत सेट अप और सिंक करें, फिर Kerberos चालू करें। |
Browser |
ब्राउज़र Kerberos टिकट केवल विश्वसनीय इंट्रानेट पतों पर भेजते हैं। उसके बिना सामान्य साइन-इन पेज दिखाई देता है। | Automatischer Versuch aus |
GPO "Site to Zone Assignment List": https://mail.example.com = 1 (इंट्रानेट)। Chrome/Edge: AuthServerAllowlist, Firefox: network.negotiate-auth.trusted-uris। |
Outlook und ActiveSync |
MAPI, EWS, Autodiscover और ActiveSync, Basic के अतिरिक्त "WWW-Authenticate: Negotiate" प्रदान करते हैं। तब डोमेन PC पर Outlook साइन-इन किए गए उपयोगकर्ता के टिकट का उपयोग करता है। | Negotiate + Basic |
Outlook में खाता सेटिंग्स > अधिक सेटिंग्स > सुरक्षा के अंतर्गत "Always prompt for logon credentials" बंद करें। |
Mail-Programme (GSSAPI) |
IMAP, SMTP सबमिशन, POP3 और ManageSieve SASL GSSAPI प्रदान करते हैं (पारस्परिक प्रमाणीकरण सहित, RFC 4752)। Thunderbird: खाता सेटिंग्स > सर्वर > प्रमाणीकरण "Kerberos / GSSAPI"। | imap/, smtp/, pop/, sieve/ |
Linux क्लाइंट पर पहले kinit चलाएँ; फिर klist, imap/mail.example.com के लिए टिकट दिखाता है। |