الفصل 16b العملاء والعمل الجماعي وCLI لوحة الإدارة: #pIdentity

OAuth 2.1 لتطبيقات البريد: Thunderbird وOutlook والأجهزة وسطر الأوامر

nextxch هو خادم تفويض OAuth 2.1 الخاص به: تسجّل تطبيقات البريد الدخول في المتصفح عبر صفحة تسجيل الدخول المعتادة إلى Webmail (بما في ذلك المصادقة الثنائية ومفاتيح المرور)، ويؤكد المستخدم منح الوصول في صفحة موافقة، ويتلقى التطبيق رموز وصول قصيرة العمر ورمز تحديث متجددًا. تقبل IMAP وSMTP وPOP3 وManageSieve الرموز عبر SASL XOAUTH2 وOAUTHBEARER (RFC 7628)، وتقبلها ActiveSync وEWS وMAPI بصيغة bearer. وتستخدم الأجهزة التي لا تملك متصفحًا تدفق رمز الجهاز (RFC 8628). ويمكن أيضًا قبول رموز الوصول الصادرة من Entra ID أو Keycloak. وكل تفويض مرئي للمستخدم والمسؤول ويمكن إلغاؤه فورًا.

نصيحة تشغيلية وملاحظة حول البنية

مع "OAuth / Kerberos فقط لكل بروتوكول" (الإدارة > مصادر الهوية) يمكن إيقاف كلمات المرور وكلمات مرور التطبيقات لبروتوكولات ونطاقات بعينها، مثل IMAP وSMTP مع OAuth فقط. ويبقى مسؤول الخادم المحلي الذي لا يرتبط بمصدر مستثنى كوصول طوارئ (break-glass).

سطر الأوامر: Device Code Flow وIMAP مع XOAUTH2

عميل عام مسجّل مسبقًا nextxch-cli. يفتح المستخدم العنوان المعروض، ويسجّل الدخول، ويؤكد الرمز.

المرجع / الإعداد
# 1. Request a device code
curl -s https://mail.example.com/oauth/device_authorization \
  -d client_id=nextxch-cli -d "scope=mail offline_access"
# -> {"device_code":"...","user_code":"BCDF-GHJK","verification_uri":"https://mail.example.com/oauth/device",...}

# 2. Open https://mail.example.com/oauth/device in a browser, sign in, confirm code BCDF-GHJK

# 3. Poll every 5 seconds until the token arrives (authorization_pending / slow_down)
curl -s https://mail.example.com/oauth/token -d client_id=nextxch-cli \
  -d grant_type=urn:ietf:params:oauth:grant-type:device_code -d device_code=...

# 4. IMAP with the access token
curl -v --login-options AUTH=XOAUTH2 --oauth2-bearer "$ACCESS_TOKEN" \
  -u anna@example.com imaps://mail.example.com/INBOX

# 5. Refresh (the old refresh token becomes invalid) and revoke
curl -s https://mail.example.com/oauth/token -d client_id=nextxch-cli \
  -d grant_type=refresh_token -d refresh_token=nxrt_...
curl -s https://mail.example.com/oauth/revoke -d client_id=nextxch-cli -d token=nxrt_...

الإعدادات والقيم الافتراضية وأفضل الممارسات

الإعداد / الموقع الوصف القيمة الافتراضية أفضل ممارسة للإنتاج
Einschalten Admin > Identity sources > OAuth 2.1: "OAuth sign-in enabled". المُصدِر (Issuer) هو العنوان العام للخادم. الاكتشاف عبر /.well-known/oauth-authorization-server و/.well-known/openid-configuration، ومفتاح التوقيع (ES256) عبر /oauth/jwks. Aus رمز الوصول 60 دقيقة، ورمز التحديث 90 يومًا دون استخدام، و365 يومًا كحد أقصى. ويؤدي استخدام رمز التحديث مرتين إلى إبطال التفويض بالكامل (حماية من السرقة).
Thunderbird عميل عام مسجّل مسبقًا "thunderbird" مع PKCE وإعادة توجيه loopback. ويقدّم Autoconfig (/.well-known/autoconfig) بروتوكول OAuth2 كطريقة ثانية بعد كلمة المرور. client_id thunderbird لا يستخدم Thunderbird بروتوكول OAuth2 إلا للمزودين المدرجين في قائمته المدمجة؛ أما لخادمكم الخاص فيتوقف ذلك على الإصدار. وحتى ذلك الحين، استخدموا Kerberos/GSSAPI أو كلمة مرور التطبيق.
Outlook und Entra ID مع مصدر Entra وخيار "قبول رموز الوصول للبروتوكولات"، يقبل nextxch رموز وصول Entra (التوقيع عبر JWKS، وaud، وiss بما في ذلك مُصدر v1 sts.windows.net، وانتهاء الصلاحية، والدليل). وتعلن ActiveSync وEWS وMAPI عن "WWW-Authenticate: Bearer". aud = api://mail.firma.de Entra: تسجيل تطبيق خاص "nextxch Mail API" مع Application ID URI بالقيمة api://mail.example.com ونطاق (مثل Mail.Access). ويعتمد استخدام Outlook for Windows للمصادقة الحديثة مع خادمكم الخاص على الإصدار وAutodiscover؛ أما على شبكة الشركة فإن Kerberos هو الطريق الموثوق.
Eigene Anwendungen عملاء يديرهم المسؤول: عامّون (PKCE) أو سرّيون مع سر (يُعرض مرة واحدة)، وعناوين URI لإعادة التوجيه مطابقة تمامًا أو Loopback بأي منفذ، والتدفقات code وrefresh وdevice code، اختياريًا دون صفحة الموافقة. PKCE S256 Pflicht النطاقات (Scopes): mail (جميع البروتوكولات)، وبروتوكولات منفردة (imap، smtp، pop3، sieve، eas، ews، mapi، dav، jmap)، وoffline_access وopenid وemail وprofile.
Übersicht und Widerruf يرى المستخدمون تطبيقاتهم المتصلة في Webmail ضمن الإعدادات > الأمان، ويرى المسؤولون جميع التفويضات ضمن الإدارة > مصادر الهوية وفي مربع حوار الحساب. ويؤدي الإلغاء أيضًا إلى إنهاء رموز الوصول الصادرة بالفعل فورًا. - عندما يعيد المسؤول تعيين كلمة مرور AD، تُلغى جميع أذونات OAuth الخاصة بالحساب تلقائيًا.