In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
In diesem Dokument wird beschrieben, wie die Endbenutzererfahrung bei der Anmeldung bei Unified Contact Center Enterprise (UCCE) Single Sign-On (SSO) verbessert werden kann. Dies kann verbessert werden, wenn der Benutzer nicht gezwungen ist, seine Anmelde-ID ein zweites Mal auf der Anmeldeseite des Identitätsanbieters (IdP) einzugeben.
Cisco empfiehlt, über Kenntnisse in folgenden Bereichen zu verfügen:
Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Bei einer UCCE-SSO-Anmeldung muss der Benutzer seine Anmelde-ID zweimal eingeben: zuerst auf der Anmeldeseite der UCCE-Anwendung (Finesse, CUIC, z. B.) und zweitens auf der Anmeldeseite des IDP (wenn eine Formularauthentifizierungsmethode verwendet wird). Im Beispiel in diesem Dokument wird Active Directory Federation Service (AD FS) als IdP verwendet.
Wenn in UCCE SSO aktiviert ist, wird nach Eingabe der Anmelde-ID und Betätigung der Schaltfläche Submit/Login auf CUIC/Finesse die eingegebene Anmelde-ID im Cookie cc_username gespeichert und für die Umleitung zum Identitätsserver (IdS) und dann zum IDP beibehalten. Es ist möglich, dieses Cookie auf der IDP-Anmeldeseite zu verwenden, um automatisch die Anmelde-ID einzugeben.
Im folgenden Beispiel wird ein HTTP/SAML-Flussdiagramm dargestellt, in dem der Endbenutzer ein Finesse-Agent und die UCCE-Anwendung ein Finesse-Server ist.
Dies ist ein Beispiel für die Schritt 4c-HTTP-Anforderungs-Header, die vom Webbrowser des Endbenutzers an AD FS (die IDP) gesendet werden.
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
Mit AD FS 3.0 als IdP wird die Konfiguration durch die Änderung der onload.js-Datei erreicht, die AD FS in die HTML-Seite einfügt, die dem Benutzer als Antwort auf die Anforderung an https://<AD FS FQDN>/adfs/ls/zurückgegeben wird.
Schritt 1: Um die Datei onload.js zu verändern, exportieren Sie die Datei über den PowerShell c→ in das Dateisystem:
PS C:\> Export-AdfsWebTheme -Name default -DirectoryPath c:\temp\adfs\
Die Datei onload.js wird in diesem Verzeichnis gespeichert:
C:\temp\adfs\script
Schritt 2: Fügen Sie je nach Anmeldungsformat den richtigen JS-Codeausschnitt an einem beliebigen Ort in der Datei außerhalb der bereits vorhandenen Codestrukturen/Logik hinzu. Fügen Sie es einfach zum unteren Teil der Datei hinzu.
Standardmäßig erfordert die Anmeldeseite, die SSO-Benutzern von AD FS in Windows Server 2012 R2 präsentiert wird, einen Benutzernamen, der ein UserPrincipleName (UPN)-Formular ist. Dies ist ein E-Mail-ähnliches Format, z. B. user@cisco.com. In einem einzigen Domain Contact Center kann die AD FS-Anmeldeseite so geändert werden, dass eine einfache sAMAccountNameUser ID (UID) zugelassen wird, die keinen Domänennamen als Teil des Benutzernamens enthält.
Wenn ein UPN-Benutzername auf der AD FS-Anmeldeseite eingegeben werden muss, verwenden Sie diesen Codeausschnitt:
// 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(); } } } }
In dieser Zeile muss domain.com so geändert werden, dass sie der Domäne der UCCE-Agenten entspricht, wenn als Anmelde-UID ein UPN verwendet wird.
var userNameValue = cc_login_name + '@' + 'domain.com';
Hinweis: AD FS verwendet standardmäßig eine UPN-Anmeldung. Im UCCE-Funktionsleitfaden, Einmalanmeldung, optionales Anpassen der AD FS-Anmeldeseite in Windows Server 2012 R2 an Zulassen der Benutzer-ID Abschnitt finden Sie Informationen zur Konfiguration der AD FS-Anmeldeseite für die Anmeldung bei sAMAccountName.
Wenn auf der AD FS-Anmeldeseite ein sAMAccountName (UID ohne Domäne)-Benutzername eingegeben werden soll, verwenden Sie diesen Codeausschnitt:
// 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(); } } } }
Hinweis: Die //Symbole im Code geben Kommentare an. Diese Posten können bei Bedarf entfernt werden. Ihr Zweck ist es, das Verständnis des Javascript-Codes zu unterstützen.
Schritt 3: Speichern Sie onload.js und laden Sie es mit den folgenden PowerShell-Befehlen in ein neues AD FS-Webdesign:
Erstellen Sie ein benutzerdefiniertes AD FS-Design mit der Vorlage aus dem Standarddesign:
PS C:\> New-AdfsWebTheme -Name custom -SourceName default
Legen Sie das benutzerdefinierte AD FS-Design als aktiv fest:
PS C:\> Set-AdfsWebConfig -ActiveThemeName benutzerdefiniert
Laden Sie die geänderte Datei onload.js in das benutzerdefinierte Design:
PS C:\> Set-AdfsWebTheme -TargetName custom -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js’;path="c:\temp\adfs\script\onload.js"}
Hinweis: AD FS muss nicht neu gestartet werden. Das aktive Design wird automatisch geändert.
In diesem Abschnitt überprüfen Sie, ob Ihre Konfiguration ordnungsgemäß funktioniert.
Melden Sie sich bei Finesse oder CUIC mit einem SSO-aktivierten Konto mit sAMAccountName oder UPN als Anmelde-ID an (abhängig von der AD FS-Konfiguration), und stellen Sie fest, dass die Benutzer-ID auf der Anmeldeseite von AD FS automatisch mit dem Fokus auf das Feld für die Kennwortaufforderung versehen wird. Nur das Passwort muss eingegeben werden, damit die Anmeldung fortgeführt werden kann.
Dieser Abschnitt enthält Informationen, die Sie zur Fehlerbehebung bei Ihrer Konfiguration verwenden können.
Bei Problemen werden die Webbrowser-Entwicklertools verwendet, um zu überprüfen, ob die Änderungen von onload.js in die zurückgegebene HTML-Seite eingespeist werden und ob Fehler in der Webbrowser-Konsole beobachtet werden.