Sitecore

Sitecore – Cómo solucionar que el intento de inicio de sesión provoque un fallo de la aplicación al utilizar el AD Module 1.3

Ayer tuve que instalar el módulo de Active Directory en una instancia de Sitecore 8.2 siguiendo la documentación oficial y la Best way to setup Active Directory Module in a Sitecore Solution de mi colega y Sitecore MVP Rodrigo Peplau.

La instalación fue bastante directa: después de descargar el módulo fui a Sitecore desktop, hice clic en Sitecore, Development Tools, Installation Wizard, subí el paquete y el Installation Wizard me guió a través del proceso de instalación.

Una vez instalado el paquete, debes modificar los siguientes archivos de configuración

  • App_Config\ConnectionStrings.config
  • App_Config\Security\domains.config
  • Web.config file

No recomendaría modificar el archivo web.config de inmediato, ya que de acuerdo con Rodrigo Peplau puede ser problemático por varias razones:

  1. Es fácil perder la pista de tus personalizaciones;
  2. Actualizar Sitecore a una versión más nueva puede volverse más difícil;
  3. Durante el desarrollo podrías verte obligado a desactivar tu módulo LDAP, básicamente deshaciendo la configuración de tu proveedor, lo cual no es sencillo

Y siguiendo su consejo, todo fue suave y como se esperaba, pude ver la lista de usuarios poblada desde Active Directory.

Sitecore User Manager Active Directory AD Blog Vinicius Deschamps

¡ASOMBROSO! Vamos a verificar si puedo iniciar sesión con mi usuario y contraseña de Active Directory

Sitecore Login using Active Directory AD account Blog Vinicius Deschamps

Girando, girando… y aparece una Yellow Screen of Death

Server Error in / Application The Provider User Key Active Directory Module Blog Vinicius Deschamps
Exception: System.ArgumentException

Message: The provider user key supplied is invalid. It must be of type System.Guid.
Parameter name: providerUserKey
Source: System.Web
at System.Web.Security.SqlMembershipProvider.GetUser(Object providerUserKey, Boolean userIsOnline)
at Sitecore.Security.SwitchingMembershipProvider.GetUser(Object providerUserKey, Boolean userIsOnline)
at Sitecore.Data.DataProviders.NullRetryer.Execute[T](Func`1 action, Action recover)
at Sitecore.Security.SitecoreMembershipProvider.GetUser(Object providerUserKey, Boolean userIsOnline)
at Sitecore.Security.Authentication.AuthenticationHelper.ParseUserName(String userName)
at Sitecore.Security.Authentication.DefaultAuthenticationManager.GetUserName(String rawUserName)
at Sitecore.Security.Authentication.DefaultAuthenticationManager.Login(String userName, String password, Boolean persistent)
at Sitecore.sitecore.login.Default.Login()
at Sitecore.sitecore.login.Default.LoginClicked(Object sender, EventArgs e)
at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.d__523.MoveNext()

Afortunadamente encontré un artículo de Sitecore que me guió a través de la solución, ya que parece que el problema ya es conocido.

Solución al problema

1. Lo primero que hay que hacer es hacer una copia de seguridad de la carpeta bin y del archivo que contiene la sección

Ten en cuenta que la sección por defecto está en Web.config, pero si seguiste las consejos de Rodrigo Peplau tu sección de membership estará en un archivo separado, así que realiza la copia de seguridad de acuerdo a tu escenario.

2. Descarga y extrae el Sitecore.Support.139945-1.3.0.0.zip

Sitecore Sitecore.Support.139945.dll Blog Vinicius Deschamps

3. Copia el DLL llamado Sitecore.Support.139945.dll en la carpeta bin y sobrescribe los archivos existentes si hay conflictos

Adding Sitecore Sitecore.Support.139945.dll bin folder Blog Vinicius Deschamps

4. Abre el archivo de configuración que contiene la sección , que en mi caso está ubicado en App_Config\AD\Membership.config

Sitecore App Config Active Directory Membership Config File Blog Vinicius Deschamps

5. Busca la sección , y localiza

<add name=”switcher” type=”Sitecore.Security.SwitchingMembershipProvider, **Sitecore.Kernel**” applicationName=”sitecore” mappings=”switchingProviders/membership” />

Sitecore existing switcher parameter Blog Vinicius Deschamps

6. Reemplaza la línea anterior con

<add name=”switcher” type=”Sitecore.**Support**.Security.SwitchingMembershipProvider, **Sitecore.Support.139945**” applicationName=”sitecore” mappings=”switchingProviders/membership” />

Sitecore Replace Switcher Parameter Blog Vinicius Deschamps

7. Ahora, guarda el archivo

8. Accede a la página de inicio de sesión de Sitecore y usa tus credenciales de Active Directory

Sitecore Login using Active Directory AD account Blog Vinicius Deschamps

9. ¡Voilá! YSoD se fue, y estoy iniciando sesión con mi credencial de Active Directory

Sitecore Experience Platform Active Directory AD Blog Vinicius Deschamps

¡Espero que les haya gustado, y gracias por leer!

Nos vemos en mi próxima publicación.

Sitecore
Sitecore – Cómo solucionar que el intento de inicio de sesión provoque un fallo de la aplicación al utilizar el AD Module 1.3 — Vinicius Deschamps