المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

التكوين

الرسم التخطيطي للشبكة

التكوينات

التحقق من الصحة

استكشاف الأخطاء وإصلاحها

أستكشاف أخطاء الاتصال وإصلاحها

المقدمة

يصف هذا المستند تكوين OAuth 2.0 في ISE لتمكين اتصال البريد الإلكتروني من خلال خوادم SMTP للبريد الإلكتروني ل Microsoft Exchange Online.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة أساسية بمحرك خدمات الهوية (ISE) من Cisco ووظائف خادم بروتوكول نقل البريد البسيط (SMTP) وتفويض OAuth.

المكونات المستخدمة

يدعم ISE الإصدار 3.5 P1 (التصحيح 3.2 8 و 3.3 التصحيح 8 و 3.4 البرنامج 4 هذه الوظيفة أيضا)

الوصول إلى Microsoft EntraID ومركز إدارة Microsoft 365

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

التكوين

يصف هذا القسم التكوين على معرف Microsoft Entra و ISE لدعم إعلامات البريد الإلكتروني المستخدمة في:

- إرسال إعلامات البريد الإلكتروني إلى أي مستخدم مسؤول داخلي مع تمكين خيار تضمين تنبيهات النظام في رسائل البريد الإلكتروني. لتكوين عنوان البريد الإلكتروني للمرسل، انقر فوق الإدارة > النظام>الإعدادات>إعدادات التنبيه>إعلام التنبيه واكتب في عنوان البريد الإلكتروني إلى العنوان المكون ضمن مركز إدارة Microsoft 365

- الجهات الراعية لإرسال إعلام بالبريد الإلكتروني إلى الضيوف مع بيانات اعتماد تسجيل الدخول الخاصة بهم وتعليمات إعادة تعيين كلمة المرور. لتدفق الضيف والكفيل، يتم تكوين البريد الإلكتروني للمرسل تحت مراكز العمل>وصول الضيف>الإعدادات>إعدادات البريد الإلكتروني للضيف>عنوان البريد الإلكتروني الافتراضي 'من' إلى العنوان المكون ضمن مركز إدارة Microsoft 365

- قم بتمكين الضيوف من تلقي بيانات اعتماد تسجيل الدخول الخاصة بهم تلقائيا بعد تسجيل أنفسهم بنجاح ومع الإجراءات التي يجب إتخاذها قبل انتهاء صلاحية حسابات الضيوف.

- إرسال رسائل البريد الإلكتروني للتذكير إلى مستخدمي مسؤول ISE/مستخدمي الشبكة الداخلية الذين تم تكوينهم على ISE قبل تاريخ انتهاء صلاحية كلمة المرور الخاصة بهم.

عقد ISE التي ترسل رسائل البريد الإلكتروني

الغرض من البريد الإلكتروني

العقدة التي ترسل البريد الإلكتروني

انتهاء صلاحية وصول الضيف

عقدة إدارة السياسة الأساسية (PAN)

الإنذارات

عقدة المراقبة واستكشاف الأخطاء وإصلاحها النشطة (PMnT)

إخطارات الرعاة والضيوف من بوابات الضيوف والكفلاء

عقدة خدمة السياسة (PSN)

انتهاء صلاحية كلمة المرور

مقلاة أولية

الرسم التخطيطي للشبكة

لاستخدام OAuth مع ISE، يلزم 3 خطوات:

1. تسجيل تطبيق ISE باستخدام معرف Microsoft Entra

2. الحصول على رمز مميز للوصول من خادم الرمز المميز (IDP)

3. مصادقة طلبات الاتصال إلى خادم SMTP باستخدام رمز مميز للوصول.

التكوينات

الخطوة 1: إنشاء حساب بريد إلكتروني للمستخدم

قم بإنشاء حساب بريد إلكتروني للمستخدم في المجال المسجل الخاص بك من مركز إدارة Microsoft 365. يتم إنشاء حساب عينة هنا باسم المستخدم "لا رد" للاتصال بتطبيق EntraID وإرسال رسائل البريد الإلكتروني من ISE.

1. انتقل إلى Users >Active Users وإضافة مستخدم لإرسال رسائل البريد الإلكتروني من ISE.

2. إعداد الأساسيات: إضافة اسم المستخدم الأول واسم العرض وكلمة المرور، انقر على التالي.

3. حدد الموقع وقم بتعيين ترخيص منتج للمستخدم (المطور Microsoft 365 E5)، انقر فوق التالي

إضافة مستخدم

4. تحت الإعدادات الاختيارية، قم بتعيين دور المستخدم (لا يوجد وصول لمركز الإدارة)

5. مراجعة الإضافة والنقر فوق إنهاء.

6. أختر التطبيقات التي يمكن فيها لحساب المستخدم هذا الوصول إلى البريد الإلكتروني ل Microsoft 365: في مركز إدارة Microsoft 365، انتقل إلى Users > Active Users > تحديد حساب المستخدم وانقر فوق Mail. تحت تطبيقات البريد الإلكتروني > إدارة تطبيقات البريد الإلكتروني. تأكد من تحديد SMTP المصدق عليه أيضا مع التطبيقات الأخرى.

إدارة تطبيقات البريد الإلكتروني

الخطوة 2: تسجيل تطبيق ISE في معرف Microsoft Entra

1. قم بتسجيل الدخول إلى مركز إدارة Microsoft Entra باستخدام حساب MS Azure الخاص بك والذي يحتوي على اشتراك نشط ويجب أن يكون على الأقل مطور تطبيقات.

2. استعرض للوصول إلى معرف Entra. ابحث عن خدمة تسجيل التطبيقات، انقر فوق تسجيل جديد

3. أدخل اسما ذا معنى للتطبيق الخاص بك وتحت أنواع الحساب المدعومة، حدد من يمكنه إستخدام التطبيق، واختر مستأجر واحد فقط - مستأجر EntraID الخاص بك وانقر فوق التسجيل لإكمال تسجيل التطبيق.

تسجيل طلب

4. يتم عرض صفحة نظرة عامة على التطبيق. قم بتسجيل معرف التطبيق (العميل)، الذي يعرف التطبيق بشكل فريد. أيضا معرف الدليل (المستأجر)، لاستخدامه في تكوين ISE SMTP.

تفاصيل تسجيل التطبيق

5. قم الآن بإضافة بيانات اعتماد التطبيق إلى تطبيق MS Entra هذا للمصادقة على نفسه بشكل آمن والوصول إلى واجهة برمجة التطبيقات (API) على الويب دون تفاعل المستخدم.

1. في التطبيق المسجل حديثا، استعرض للإدارة>الشهادات والأسرار. تحت أسرار العميل انقر على سر العميل الجديد. أدخل الوصف ضمن إضافة سر عميل وحدد مدة انتهاء الصلاحية وانقر فوق إضافة.

2. لا يمكن عرض قيمة سر العميل كقيم سرية للعميل، باستثناء ما بعد الإنشاء مباشرة. تأكد من حفظ السر عند إنشائه قبل ترك الصفحة.

3. لاحظ أيضا تاريخ انتهاء صلاحية المفتاح.

التكوين السري لعميل التطبيق

6. يتم السماح للتطبيقات باستدعاء واجهات برمجة التطبيقات عندما يتم منحها أذونات من قبل المستخدمين/المسؤولين. قم الآن بإضافة أذونات SMTP إلى تطبيق MS Entra.

1. في التطبيق المسجل حديثا، استعرض للإدارة > أذون واجهة برمجة التطبيقات. حدد إضافة إذن.

2. حدد واجهات برمجة التطبيقات (APIS) التي تستخدمها مؤسستي علامة التبويب والبحث عن Office 365 Exchange Online".

3. انقر فوق أذونات التطبيق.

4. للوصول إلى SMTP، أختر إذن SMTP.SendAsApp.

5. موافقة مسؤول المستأجر مطلوبة لهذا الإذن. انقر فوق منح موافقة المسؤول ل <اسم المستأجر>

تعيين إذن واجهة برمجة التطبيقات للتطبيق

Note: User.Read Permission for Microsoft Graph is added by default (No Admin consent for the tenant)

7. يتم إستخدام العناصر الأساسية للخدمة في Exchange لتمكين التطبيقات من الوصول إلى علب بريد Exchange عبر تدفق بيانات اعتماد العميل مع بروتوكولات SMTP و POP و IMAP.

بمجرد موافقة مسؤول المستأجر على تطبيق Microsoft Entra، يجب على المسؤول تسجيل أصل خدمة تطبيق Entra في Exchange عبر Exchange Online PowerShell. يتم تمكين هذا التسجيل بواسطة cmdlet ل New-ServicePrincipal.

1. قم بتثبيت PowerShell، إذا لم يكن مثبتا بالفعل على الكمبيوتر المحمول

abc@abc-M-506L ~ % brew install --cask powershell

abc@abc-M-506L ~ % sh

sh-3.2$ brew update

sh-3.2$ brew upgrade powershell

تثبيت PowerShell

II. لاستخدام cmdlet New-ServicePrincipal، قم بتثبيت ExchangeOnlineManagement واتصل بمستأجرك كما هو موضح في المقطع:

sh-3.2$ pwsh

PowerShell 7.5.4

PS/Users/abc> Install-Module -Name ExchangeOnlineManagement

PS/Users/abc> Import-module ExchangeOnlineManagement

PS/Users/abc> Connect-ExchangeOnline -Organization xxxxxxxx-xxxx-xxxx-xxxx-xxxxx999be76 ---->Directory (tenant) ID

الاتصال بمستأجر Exchange Online

ثالثا - تسجيل أصل خدمة تطبيقات Microsoft Entra في Exchange. أستخدم AppID و ObjectID [Object_ID هو معرف الكائن من صفحة النظرة العامة لعقدة تطبيق المؤسسة (مدخل Azure) لتسجيل التطبيق. إنه ليس معرف الكائن من صفحة النظرة العامة لعقدة تسجيلات التطبيق. يؤدي إستخدام معرف الكائن غير الصحيح إلى فشل المصادقة].

PS/Users/abc> New-ServicePrincipal -AppId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx6a953e -ObjectId b10axxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

تسجيل أصل خدمة تطبيق Entra في Exchange

رابعا.  التحقق من معرف الخدمة الأساسي المسجل باستخدام الأمر Get-ServicePrincipal cmdlet

PS/Users/abc> Get-ServicePrincipal | fl

التحقق من معرف الخدمة الأساسي المسجل

خامسا.  يمكن الآن لمسؤول المستأجر إضافة علب البريد المحددة في المستأجر المسموح بالوصول إليها بواسطة التطبيق الخاص بك. يتم تنفيذ هذا التكوين باستخدام الأمر Add-MailboxPermission cmdlet.

PS/Users/abc> Add-MailboxPermission -Identity "no-reply@abcdef.onmicrosoft.com" -User b10aa0dx-xxxx-xxxx-xxxx-xxxxxxe189bb -AccessRights FullAccess

إضافة إذن علبة البريد للوصول إلى التطبيق

يمكن الآن لتطبيق Microsoft Entra الوصول إلى علب البريد المسموح بها عبر بروتوكولات SMTP أو POP أو IMAP باستخدام تدفق منح بيانات اعتماد عميل OAuth 2.0.

الخطوة 3: تكوين مصادقة مستخدم ISE SMTP عبر MS Exchange Online OAuth

لتكوين خادم بروتوكول نقل البريد البسيط (SMTP)، انقر فوق أيقونة القائمة () واختر الإدارة>النظام>الإعدادات>خادم SMTP. قم بتكوين الحقول.

- في منطقة إعدادات خادم SMTP:

- خادم SMTP: smtp.office365.com

- منفذ SMTP: 587

- مهلة الاتصال: 60 ثانية

- في منطقة إعدادات المصادقة، أستخدم المحول switching لتمكين خيار إستخدام إعدادات المصادقة.

أختر MS Exchange Online OAuth: أدخل هذه القيم لتكوين Microsoft Exchange Online OAuth.

- في حقل اسم المستخدم، أدخل عنوان البريد الإلكتروني الكامل لاسم مستخدم Exchange Online.

- في حقل معرف العميل، أدخل معرف العميل لتطبيق معرف Azure Entra.

- في حقل معرف المستأجر، أدخل معرف المستأجر لتطبيق معرف Azure Entra.

- في حقل سر العميل، أدخل سر العميل لتطبيق معرف Azure Entra.

- في حقل تاريخ انتهاء الصلاحية، أدخل تاريخ انتهاء صلاحية سر العميل.

يتم تشغيل إنذارات انتهاء صلاحية سر العميل استنادا إلى هذا التكوين.

- يتم تعميم ملفات OAuth Token Endpoint API وScope تلقائيا.

لا يمكن حفظ التكوين إلا بعد عملية "إختبار الاتصال" الناجحة.

اتصال إختبار ناجح بخادم SMTP

Note: To protect sensitive customer data, these configurations are excluded from Backup and Restore operations

التحقق من الصحة

للتحقق، قم بتكوين إعدادات البريد الإلكتروني للضيف. انتقل إلى مراكز العمل>وصول الضيف>إعدادات البريد الإلكتروني للضيف. حدد تمكين إعلامات البريد الإلكتروني للضيوف وقم بتكوين عنوان البريد الإلكتروني الافتراضي "من" لحساب عدم الرد الذي تم تكوينه أثناء الخطوة 1 من التكوين والحفظ.

تغيير إعدادات البريد الإلكتروني للضيف

إرسال بريد إلكتروني للاختبار عن طريق التنقل إلى مراكز العمل > وصول الضيف > المدخل والمكونات > بوابات الضيف > مدخل الضيف المسجل ذاتيا (الافتراضي) > تخصيص صفحة المدخل > الإخطارات > البريد الإلكتروني.

في الجانب الأيمن من جزء المعاينة، انقر فوق إعدادات > إرسال بريد إلكتروني للاختبار، إضافة معرف بريدك الإلكتروني وانقر فوق إرسال.

إختبار البريد الإلكتروني من بوابة التسجيل الذاتي

يجب أن يتلقى Outlook رسالة بريد إلكتروني من حساب عدم الرد المكون في الخطوة 1 من التحقق. نموذج البريد الإلكتروني في لقطة الشاشة.

نموذج البريد الإلكتروني الذي تم تلقيه في Outlook

Guest.log at debug level:

2026-02-02 05:17:34,608 INFO   [admin-http-pool139][[]] cpm.guestaccess.apiservices.util.SmtpMsgRetryThreadUtil -::admin:::- sendMailMessage: Submitting Mail Job............

2026-02-02 05:17:34,608 INFO   [admin-http-pool139][[]] cpm.guestaccess.apiservices.util.SmtpMsgRetryThreadUtil -::admin:::- submitMailMsgJob: SMTP server FQDN ==> smtp.office365.com

2026-02-02 05:17:34,609 INFO   [admin-http-pool139][[]] cpm.guestaccess.apiservices.util.SmtpMsgRetryThreadUtil -::admin:::- sendMailMessage: Time taken for Submitting mail job is 1 Milli seconds.

2026-02-02 05:17:34,609 INFO   [admin-http-pool139][[]] cpm.guestaccess.apiservices.util.SmtpMsgRetryThreadUtil -::admin:::- sendMailMessage: Calling Future.get....

2026-02-02 05:17:34,609 INFO   [GUEST_ACCESS_SMTP_RETRY_THREAD][[]] cpm.guestaccess.apiservices.util.SmtpMsgRetryThreadUtil -:::::- submitMailMsgJob: Creating transport object...

2026-02-02 05:17:39,365 INFO   [GUEST_ACCESS_SMTP_RETRY_THREAD][[]] cpm.guestaccess.apiservices.util.SmtpMsgRetryThreadUtil -:::::- submitMailMsgJob: Time taken for transport.sendMessage() call is 4756 Milli Seconds.

2026-02-02 05:17:39,365 INFO   [admin-http-pool139][[]] cpm.guestaccess.apiservices.util.SmtpMsgRetryThreadUtil -::admin:::- sendMailMessage: Future.get status: success Time taken for Future.get method call is 4756 Milliseconds.

قم أيضا بالاختبار من بوابة الكفيل عن طريق إعادة إرسال بيانات اعتماد المستخدم إلى المستخدم الضيف بواسطة مسؤول الكفيل.

إختبار من بوابة الكفيل

إرسال بيانات الاعتماد إلى المستخدم الضيف

نموذج البريد الإلكتروني الذي يتلقاه المستخدم الضيف:

إعلام البريد الإلكتروني للمستخدم الضيف

استكشاف الأخطاء وإصلاحها

ابدأ بفحص الإنذارات الخاصة بانتهاء صلاحية سر العميل. تتم إضافة تنبيهات جديدة متعلقة ب SMTP OAuth Client Secret في ISE.

لمزيد من أستكشاف الأخطاء وإصلاحها، قم بتمكين سجلات تصحيح الأخطاء على عقدة PAN أو PSN أو PMnT وفقا للمشكلة التي تقوم باستكشاف الأخطاء وإصلاحها.

- مكون التسجيل: guest-access-admin، guestaccess

- ملف السجل: guest.log

عملية إختبار الاتصال

2026-02-02 05:58:21,501 DEBUG [MnT-AlarmWorkerMail-Threadpool-0][[]] cpm.guestaccess.apiservices.util.SmtpSession -:::::- SMTP settings : Username : null Port : 587 timeout : 60 isSSLEnabled: false isAuthEnabled false Server: smtp.office365.com

2026-02-02 05:58:21,501 DEBUG [MnT-AlarmWorkerMail-Threadpool-0][[]] cpm.guestaccess.apiservices.util.SmtpSession -:::::- Setting MailSessionProperties

2026-02-02 05:58:21,501 DEBUG [MnT-AlarmWorkerMail-Threadpool-0][[]] cpm.guestaccess.apiservices.util.SmtpSession -:::::- Set the FQDN : sa-ise35-1.poongarg.local

2026-02-02 05:58:21,513 DEBUG [MnT-AlarmWorkerMail-Threadpool-0][[]] cpm.guestaccess.apiservices.util.SmtpSession -:::::- SMTP settings : Username : null Port : 587 timeout : 60 isSSLEnabled: false isAuthEnabled false Server: smtp.office365.com

2026-02-02 05:58:21,513 DEBUG [MnT-AlarmWorkerMail-Threadpool-0][[]] cpm.guestaccess.apiservices.util.SmtpSession -:::::- Setting MailSessionProperties

2026-02-02 05:58:21,513 DEBUG [MnT-AlarmWorkerMail-Threadpool-0][[]] cpm.guestaccess.apiservices.util.SmtpSession -:::::- Set the FQDN : sa-ise35-1.poongarg.local

2026-02-02 05:59:14,872 DEBUG [admin-http-pool136][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- inside smtpServerSettings testConnection

2026-02-02 05:59:14,872 DEBUG [admin-http-pool136][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- smtpServerSecureSettings testConnection

2026-02-02 05:59:15,630 DEBUG [admin-http-pool136][[]] cpm.guestaccess.apiservices.oauth.OauthTokenCache -::admin:::- Putting value in OAuth Cache (accessToken, expiry) ..

2026-02-02 05:59:15,630 DEBUG [admin-http-pool136][[]] cpm.guestaccess.apiservices.oauth.ExchangeOnlineProvider -::admin:::- Access token acquired (no caching in this method)

2026-02-02 05:59:15,630 DEBUG [admin-http-pool136][[]] cpm.guestaccess.apiservices.oauth.OauthTokenCache -::admin:::- Putting value in OAuth Cache (accessToken, expiry) ..

2026-02-02 05:59:20,146 DEBUG [admin-http-pool136][[]] cpm.guestaccess.apiservices.util.SmtpSession -::admin:::- Successfully created mail session and connected to mail server.

2026-02-02 05:59:20,146 DEBUG [admin-http-pool136][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- Successfully connected to smtp.office365.com.

عملية الحفظ

2026-02-02 05:54:07,337 DEBUG [admin-http-pool129][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- inside smtpServerSettings editSubmit

2026-02-02 05:54:07,337 DEBUG [admin-http-pool129][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- smtpServerSettings in editSubmit

2026-02-02 05:54:07,339 DEBUG [admin-http-pool129][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- Set SMTP Server is :smtp.office365.com

2026-02-02 05:54:07,339 DEBUG [admin-http-pool129][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- Set SMTP port is :587

2026-02-02 05:54:07,339 DEBUG [admin-http-pool129][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- Set Connection Timout is :60

2026-02-02 05:54:07,339 DEBUG [admin-http-pool129][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- Set TLS/SSL config is :false

2026-02-02 05:54:07,339 DEBUG [admin-http-pool129][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- Set Authentication config is :false

2026-02-02 05:54:07,357 DEBUG [admin-http-pool129][[]] cpm.admin.guestaccess.action.SmtpServerSettingsAction -::admin:::- SMTP server settings successfully saved

أستكشاف أخطاء الاتصال وإصلاحها

1. خطأ في واجهة المستخدم الرسومية: فشل الاتصال ب smtp.office365.con.

خطأ انتهاء مهلة الاتصال

2026-02-09 03:24:58,658 ERROR [admin-http-pool11][[]] cpm.guestaccess.apiservices.util.SmtpSession -::admin:::- MessagingException : com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.office365.com, 587; timeout 60000;

nested exception is:

java.net.SocketTimeoutException: connect timed out

انتهت مهلة الاتصال حسب Guest.log. يلزم إصلاح تكوين الوكيل لحل هذه المشكلة.

2. خطأ في واجهة المستخدم الرسومية: نقطة نهاية OAuth غير صالحة أو معرف المستأجر - تفسيري ذاتي. يجب التحقق من معرف المستأجر.

3. سر العميل غير صالح - نفس الشيء، يلزم التحقق من قيمة سر العميل

خطأ غير صالح في سر العميل

4. عنوان بريد إلكتروني غير صالح- تأكد من صحة تكوين برنامج الخدمة.

خطأ غير صالح في عنوان البريد الإلكتروني

5. تعذر العثور على مسار شهادة صالح للهدف المطلوب: تأكد من أن شهادات سلسلة شهادات معرف الإنترا (يقوم Microsoft Azure RSA TLS بإصدار CA و DigiCert Root CA وما إلى ذلك طبقا ل PCAP) موجودة في مخزن الشهادات الموثوق به الخاص ب ISE وموثوق به لدور الثقة للمصادقة داخل ISE واتصال العميل-الخادم (البنية الأساسية).

تحقق من كافة الشهادات المرسلة بواسطة EntraID باستخدام PCAP.

فشل التحقق من صحة الشهادة

2026-02-10 14:32:47,528 ERROR  [admin-http-pool9][[]] cpm.guestaccess.apiservices.util.SmtpSession -::admin:::- Exception : javax.mail.AuthenticationFailedException: failed to connect

2026-02-10 14:34:06,549 ERROR  [admin-http-pool9][[]] cpm.guestaccess.apiservices.oauth.ExchangeOnlineProvider -::admin:::- Error acquiring token: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

2026-02-10 14:34:28,655 ERROR  [admin-http-pool27][[]] cpm.guestaccess.apiservices.oauth.ExchangeOnlineProvider -::admin:::- Error acquiring token: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target