Introducción
Este documento describe cómo la experiencia del usuario final en la empresa unificada del Centro de contacto (UCCE) sola Muestra-en la clave (SSO) puede ser mejorada. Esto puede ser mejorada, si el no fuerzan usuario a ingresar su ID de ingreso por un por segunda vez en la página de registro del proveedor de la identidad (IdP).
Prerrequisitos
Requisitos
Cisco recomienda que tenga conocimiento sobre estos temas:
- Clave-flujo y ANUNCIO FS UCCE SSO
- Protocolo hyper-text transfer (HTTP)
- Lenguaje de marcado del hypertext (HTML)
- Lenguaje de marcado 2.0 (SAMLv2) de la aserción de la Seguridad
- Abra la autorización 2.0 (OAuthv2)
- Familiaridad con Windows PowerShell (picosegundo)
- Familiaridad con el Javascript (JS)
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- UCCE 11.5(1) y arriba
- Delicadeza 11.5(1) y arriba
- Cisco unificó el centro de la inteligencia (CUIC) 11.5(1) y arriba.
- Microsoft Active Directory (ANUNCIO) - ANUNCIO instalado en el Servidor Windows
- ANUNCIO FS 2.0/3.0
- Servidor Windows 2012 R2
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
En una clave UCCE SSO, el usuario debe ingresar su ID de ingreso dos veces: primero en la página de registro de la aplicación UCCE (delicadeza, CUIC, e.g.) y en segundo lugar en la página de registro de IdP (si se utiliza un método de autenticación de formularios). En el ejemplo en este documento, el servicio de la federación del Active Directory (ANUNCIO FS) se utiliza como el IdP.
Cuando SSO se activa en UCCE, después de que se ingrese el ID de ingreso y el botón del someter/de la clave se presiona en CUIC/Finesse, el ID de ingreso ingresado se salva en el cc_username del Cookie y preservado para reorienta al servidor de la identidad (IdS) y entonces al IdP. Es posible utilizar este Cookie en la página de registro de IdP para poblar automáticamente el ID de ingreso.
Para el estudio, aquí está un diagrama de flujo del ejemplo HTTP/SAML donde está un agente el usuario final de la delicadeza y la aplicación UCCE es un servidor de la delicadeza.

Éste es un ejemplo de las encabezados de solicitud HTTP del paso 4c enviadas por el buscador Web del usuario final al ANUNCIO FS (el 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
Configurar
Con el 3.0 FS del ANUNCIO como el IdP, la configuración es alcanzada por la modificación del fichero onload.js, que el ANUNCIO FS inyecta en la página HTML devuelta al usuario en respuesta a la petición a https:// <AD FS FQDN>/adfs/ls/.
Paso 1. Para modificar el fichero onload.js, exporte el fichero vía el cmdlet de PowerShell al sistema de ficheros:
Picosegundo C:\ > exportación-AdfsWebTheme – Valor por defecto del nombre – DirectoryPath c:\temp\adfs\
El fichero onload.js se coloca en este directorio:
C:\temp\adfs\script
Paso 2. Dependiendo del formato de la clave, agregue el fragmento de código apropiado JS cualquier lugar en el fichero afuera ya de las actuales estructuras/lógica del código. Para la facilidad, agreguela a la parte inferior del fichero.
Por abandono, la página del ingresar presentada a los usuarios SSO por el ANUNCIO FS en el Servidor Windows 2012 R2 requiere un username que sea una forma del userPrincipleName (UPN). Éste es correo electrónico-como el formato, por ejemplo, user@cisco.com. En un solo Centro de contacto del dominio, el ANUNCIO FS ingresa la página se puede modificar para permitir una identificación simple del sAMAccountNameUser (UID) que no incluya un Domain Name como parte del Nombre de usuario.
Si un username UPN necesita ser entrado en la página de registro FS del ANUNCIO, utilice este fragmento de código:
// 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();
}
}
}
}
En esta línea, domain.com se debe modificar para hacer juego el dominio de los agentes UCCE si un UPN se utiliza como el UID de la clave.
var userNameValue = cc_login_name + '@' + 'domain.com';
Nota: El ANUNCIO FS utiliza una clave UPN por abandono. Refiera a la guía de funciones UCCE, sola Muestra-en el capítulo, personalice opcionalmente el ANUNCIO FS ingresan la página en el Servidor Windows 2012 R2 para permitir la sección de la identificación del usuario en cómo configurar la página de registro FS del ANUNCIO para tener en cuenta la clave del sAMAccountName.
Si un username del sAMAccountName (UID sin el dominio) si se entra en la página de registro FS del ANUNCIO, utilice este fragmento de código:
// 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();
}
}
}
}
Nota: Los símbolos de //en el código denotan los comentarios. Esas líneas pueden ser quitadas si están deseadas. Su propósito es ayudar en la comprensión del código del Javascript.
Paso 3. Salve onload.js y recarguelo sobre un nuevo tema de la red FS del ANUNCIO con estos comandos de PowerShell:
Cree un tema de encargo FS del ANUNCIO con la plantilla del tema del valor por defecto:
Picosegundo C:\ > nuevo-AdfsWebTheme – Aduana del nombre – Valor por defecto de SourceName
Fije el tema de encargo FS del ANUNCIO como active:
Picosegundo C:\ > conjunto-AdfsWebConfig - Aduana de ActiveThemeName
Cargue el fichero modificado onload.js al tema de encargo:
Picosegundo C:\ > conjunto-AdfsWebTheme - Aduana de TargetName - AdditionalFileResource @ {Uri='/adfs/portal/script/onload.js; path= " c:\temp\adfs\script\onload.js”}
Nota: No hay reinicio del ANUNCIO FS necesario. El tema activo se modifica automáticamente.
Verificación
Utilize esta sección para confirmar que su configuración funcione correctamente.
Ábrase una sesión a la delicadeza o a CUIC con una cuenta habilitada para SSO con el sAMAccountName o a UPN como ID de ingreso (depende de la configuración FS del ANUNCIO) y observe que en la página de registro FS del ANUNCIO la identificación del usuario está poblada automáticamente con el foco en el campo del prompt de contraseña. Solamente la contraseña necesita ser ingresada para que la clave proceda.

Troubleshooting
Esta sección brinda información que puede utilizar para la solución de problemas en su configuración.
En caso de los problemas, las herramientas del desarrollador del buscador Web se utilizan para controlar si las modificaciones del onload.js se inyectan en la página HTML devuelta y si algunos errores se observan en la consola del buscador Web.
Información Relacionada