المحتويات

المقدمة

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

المتطلبات

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

معلومات أساسية

التكوين

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

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

معلومات ذات صلة

المقدمة

يوضح هذا المستند الكيفية التي يمكن بها تحسين تسجيل دخول المستخدم النهائي في تسجيل الدخول الأحادي لمركز الاتصال الموحد (UCCE).  يمكن تحسين ذلك، إذا لم يتم إجبار المستخدم على إدخال معرف تسجيل الدخول الخاص به للمرة الثانية في صفحة تسجيل الدخول الخاصة بموفر الهوية (IdP).

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

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- تدفق تسجيل دخول UCCE SSO و AD FS

- بروتوكول نقل النص التشعبي (HTTP)

- لغة ترميز النص التشعبي (HTML)

- لغة ترميز تأكيد الأمان 2.0 (SAMLv2)

- التفويض المفتوح 2.0 (OAuthv2)

- التعرف على Windows PowerShell (PS)

- التشابه مع JavaScript (JS)

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

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- UCCE 11.5(1) وأعلى

- Finesse 11.5(1) وما فوق

- Cisco Unified Intelligence Center (CUIC) 11.5(1) وما فوق.

- Microsoft Active Directory (AD) - AD مثبت على Windows Server

- AD FS 2.0/3.0

- نظام التشغيل Windows Server 2012 R2

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

معلومات أساسية

في تسجيل دخول UCCE SSO، يجب على المستخدم إدخال معرف تسجيل الدخول الخاص به مرتين: الأولى في صفحة تسجيل الدخول إلى تطبيق UCCE (Finesse، CUIC، على سبيل المثال) والثانية في صفحة تسجيل الدخول إلى IdP (في حالة إستخدام طريقة مصادقة النماذج). في المثال الموجود في هذا المستند، يتم إستخدام خدمة إتحاد Active Directory (AD FS) كمعرف.

عندما يتم تمكين SSO في UCCE، بعد إدخال معرف تسجيل الدخول والضغط على زر التسليم/تسجيل الدخول على CUIC/Finesse، يتم تخزين معرف تسجيل الدخول الذي تم إدخاله في ملف تعريف الارتباط cc_username ويتم الحفاظ عليه لعمليات إعادة التوجيه إلى خادم الهوية (IDs) ثم إلى IdP. من الممكن إستخدام ملف تعريف الارتباط هذا في صفحة تسجيل الدخول إلى IdP لنشر معرف تسجيل الدخول تلقائيا.

للمراجعة، فيما يلي مثال لمخطط تدفق HTTP/SAML حيث يكون المستخدم النهائي عامل Finesse وتطبيق UCCE هو خادم Finesse.

هذا مثال على رؤوس طلبات الخطوة 4c HTTP المرسلة من مستعرض ويب للمستخدم النهائي إلى AD FS (IdP).

Request URL: https://dc01.omozol.lab/adfs/ls/?SAMLRequest=tZTBjtowEIbv%2BxSR...

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Accept-Encoding: gzip, deflate, br

Accept-Language: en-US,en;q=0.9

Cache-Control: no-cache

Connection: keep-alive

Cookie: cc_username=agent1%40omozol.lab

Host: dc01.omozol.lab

Pragma: no-cache

Referer: https://fns01p.omozol.lab/desktop/container/landing.jsp?locale=en_US

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

التكوين

مع AD FS 3. 0 كمعرف، يتم تحقيق التكوين من خلال تعديل ملف onLoad.js، والذي يقوم AD FS بإدخاله في صفحة HTML التي تم إرجاعها للمستخدم إستجابة لطلب https://<AD FS FQDN>/ADFS/ls/.

الخطوة 1. لتعديل ملف onload.js، قم بتصدير الملف عبر cmdlet ل PowerShell إلى filesystem (نظام الملفات):

PS C:\> التصدير-AdfsWebTheme -الاسم الافتراضي -DirectoryPath c:\temp\adfs\

يتم وضع ملف onload.js في هذا الدليل:

C:\temp\adfs\script

الخطوة 2. بناء على تنسيق تسجيل الدخول، قم بإضافة قصاصة التعليمات البرمجية JS المناسبة في أي مكان في الملف خارج بنيات/منطق التعليمات البرمجية الموجودة بالفعل. من أجل السهولة، قم بإضافته إلى أسفل الملف.

بشكل افتراضي، تتطلب صفحة تسجيل الدخول التي يتم تقديمها لمستخدمي SSO بواسطة AD FS في Windows Server 2012 R2 اسم مستخدم يكون نموذج userPrincipleName (UPN). هذا تنسيق يشبه البريد الإلكتروني، مثلا، user@cisco.com. في مركز اتصال مجال واحد، يمكن تعديل صفحة تسجيل الدخول إلى AD FS للسماح بمعرف مستخدم بسيط sAMAccountNameUser (UID) لا يتضمن اسم مجال كجزء من اسم المستخدم.

إذا كان اسم مستخدم UPN يحتاج إلى أن يكون مدخل على صفحة تسجيل الدخول إلى AD FS، أستخدم قصاصة الرمز هذه:

// Get cc_username as login ID from HTTP Cookie header

if (document.cookie) {

// If the position of cc_username in the cookie is the first position, 0...

if (document.cookie.indexOf('cc_username') == 0) {

// Split the cookie into an array with the delimitor being '='

var cookies = document.cookie.split('=');

// If the first element of the array is cc_username then...

if (cookies[0] == 'cc_username') {

// ...the second element will be the actual username and we should save that.

var cc_login_name = cookies[1];

}

// Customize Login page: add domain if needed as AD FS by default require login ID in UPN form

// If the parsed login is not null, do the following logic

if (cc_login_name != null) {

// If %40 (encoded '=') does not exist in the login name...

if (cc_login_name.indexOf('%40') == -1) {

// ...then add '@domain.com' to ensure a UPN format is input

var userNameValue = cc_login_name + '@' + 'domain.com';

// Populate the UPN into the userNameInput of the page, and put the focus

// on the password.

document.getElementById("userNameInput").value = userNameValue;

document.getElementById("passwordInput").focus();

} else {

// Otherwise, if %40 does exist in the username, replace it with the @ sign

// and populate the UPN into the userNameInput of the page, and put the

// focus on the password.

var userNameValue = cc_login_name.replace('%40', '@');

document.getElementById("userNameInput").value = userNameValue;

document.getElementById("passwordInput").focus();

}

}

}

}

في هذا السطر، يجب تعديل domain.com ليتطابق مع مجال عملاء UCCE إذا تم إستخدام UPN كمعرف تسجيل الدخول.

var userNameValue = cc_login_name + '@' + 'domain.com';

ملاحظة: يستخدم AD FS تسجيل دخول UPN بشكل افتراضي. ارجع إلى دليل ميزة UCCE، الفصل تسجيل الدخول الأحادي، تخصيص صفحة تسجيل الدخول إلى AD FS إختياريا في Windows Server 2012 R2 للسماح بقسم معرف المستخدم حول كيفية تكوين صفحة تسجيل الدخول إلى AD FS للسماح بتسجيل دخول SAMAccountName.

إذا كان يجب إدخال اسم مستخدم sAMAccountName (UID بدون مجال) في صفحة تسجيل الدخول إلى AD FS، أستخدم جزء التعليمات البرمجية هذا:

// Get cc_username as login ID from HTTP Cookie header

if (document.cookie) {

// If the position of cc_username in the cookie is the first position, 0...

if (document.cookie.indexOf('cc_username') == 0) {

// Split the cookie into an array with the delimitor being '='

var cookies = document.cookie.split('=');

// If the first element of the array is cc_username then...

if (cookies[0] == 'cc_username') {

// ...the second element will be the actual username and we should save that.

var cc_login_name = cookies[1];

}

// Customize Login page: remove domain if needed to use login ID in sAMAccount form

// If the parsed login is not null, do the following logic

if (cc_login_name != null) {

// If %40 (encoded '=') DOES exist in the login name...

if (cc_login_name.indexOf('%40') != -1) {

// ...then split the login into an array about the @ sign and only keep the username.

var domainLogin = cc_login_name.replace('%40', '@')

var noDomainLogin = domainLogin.split('@');

var userNameValue = noDomainLogin[0];

// Populate the sAMAccountName into the userNameInput of the page, and put the focus

// on the password.

document.getElementById("userNameInput").value = userNameValue;

document.getElementById("passwordInput").focus();

} else {

// Otherwise, if %40 does not exist in the username, there is no "@domain",

// so populate the sAMAccountName into the userNameInput of the page,

// and put the focus on the password.

document.getElementById("userNameInput").value = cc_login_name;

document.getElementById("passwordInput").focus();

}

}

}

}

ملاحظة: // الرموز في الرمز تشير إلى التعليقات. يمكن إزالة هذه الخطوط إذا كان ذلك مطلوبا. والغرض منها هو المساعدة على فهم شفرة جافاسكريبت.

الخطوة 3. احفظ onLoad.js وأعد تحميله على نسق ويب AD FS جديد باستخدام أوامر PowerShell التالية:

إنشاء نسق AD FS مخصص باستخدام القالب من النسق الافتراضي:

الفئة PS C:\> New-AdfsWebTheme -Name المخصص -SourceName الافتراضي

تعيين نسق AD FS المخصص كنشاط:

PS C:\> Set-AdfsWebConfig -ActiveThemeName مخصص

قم بتحميل ملف onload.js المعدل إلى النسق المخصص:

PS C:\> Set-AdfsWebTheme -TargetName المخصص -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js'؛المسار="c:\temp\adfs\script\onload.js"}

ملاحظة: لا توجد حاجة لإعادة تشغيل AD FS. يتم تعديل النسق النشط تلقائيا.

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

استخدم هذا القسم لتأكيد عمل التكوين بشكل صحيح.

قم بتسجيل الدخول إلى Finesse أو CUIC باستخدام حساب تمكين SSO باستخدام sAMAccountName أو UPN كمعرف تسجيل دخول (يعتمد على تكوين AD FS) ولاحظ أنه في صفحة تسجيل الدخول إلى AD FS يتم تلقائيا ملء معرف المستخدم مع التركيز على حقل مطالبة كلمة المرور. يجب إدخال كلمة المرور فقط لمتابعة تسجيل الدخول.

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

يوفر هذا القسم معلومات يمكنك إستخدامها لاستكشاف أخطاء التكوين وإصلاحها.

في حالة وجود مشاكل، يتم إستخدام أدوات مطور الويب للتحقق مما إذا كانت التعديلات من onLoad.js قد تم حقنها في صفحة HTML المرجعة وإذا تم ملاحظة أي أخطاء في وحدة تحكم مستعرض الويب.

معلومات ذات صلة

- أدوات مطور Firefox

- أدوات مطور كروم

- أدوات المطور ل Internet Explorer (F12)

- اسم حساب SAM

- userPrincipleName

- UID

- أدلة ميزات Cisco Unified Contact Center Enterprise

- الدعم التقني والمستندات - Cisco Systems