ID 9562: Failed to read attribute msExchUserAccountControl from Active Directory…

Un error más. Bueno, el día de hoy estuve con un cliente cuyo servidor de exchange 2003 presentaba los siguientes “síntomas”:


- Cuando el administrador creaba una cuenta nueva de usuario, seleccionando la opción de crear el buzón de correo electrónico, la cuenta aparecía en la consola de administración del Directorio Activo, sin embargo en las propiedades de la misma no aparecía la cuenta de correo creada, ni tampoco en la consola de Exchange.
- En el visor de sucesos aparecía el error con ID 9562 “Failed to read attribute msExchUserAccountControl from Active Directory…”


Buscando ayuda en internet e inclusive en la base de conocimiento de Microsoft indicaban que este error se debe a que el atributo msExchUserAccountControl no se encontraba configurado con valor de 0. No tuve éxito al encontrar como cambiar el valor, hasta que me topé con otro artículo hablando del Receipient Update Service o RUS. Ingresé a la consola de Exchange y revise este servicio, dentro del mismo se encontraban dos instancias ejecutándose, un de ellas estaba configurada para “ejecutarse siempre”, mientras que la otra estaba configurada a “no ejecutarse”, cambie para que esta instancia se ejecute siempre y asunto arreglado.


La moraleja de esto es que la base de conocimiento proponía algunas cosas, que inclusive eran muy complejas, y sin embargo la solución resulto ser sencilla.

Sign-in button para SharePoint Portal Server 2003 Extranet

Este log está hecho para los que no decimos ni “hola” en francés. Hace ya unos años atrás estuve buscando una solución para colocar un botón de inicio de sesión para un portal SharePoint publicado en la extranet y con acceso anónimo. Intenté de mil y un formas, y hasta que hace un par de días atrás me encontré con este sitio: http://www.laboratoire-microsoft.org/articles/server/sp2003/3/. A pesar de que esté escrito en francés pero está bastante entendible y lo mejor de todo es que trae el webpart del botón implementado. Para dejar claro el escenario es el siguiente:


Se tiene implementada una intranet en SharePoint Portal Server 2003, la misma que por defecto autentica y autoriza a los usuarios por medio de las credenciales del Directorio Activo con las cuales se encuentran “logeados” en su PC. El objetivo es que la intranet pueda ser vista por cualquier usuario en Internet sin dejar que los mismos puedan hacer cambios (lógicamente). La solución a esto es habilitar acceso anónimo en el SharePoint lo cual no es difícil, pero para poder hacer cambios desde la red interna se necesita configurar al sitio sharepoint con autenticación integrada; en resumen los usuarios externos (Internet) no pueden acceder al sitio anónimamente y al mismo tiempo internamente hacer cambios.


Pero tránquilos, si hay solución para esto, y lo mejor es que mientras internamente sharepoint reconoce las credenciales de usuario que accede a la intranet, los usuarios en Internet ingresan al portal anónimamente. Ahora si viene el proceso:


- El IIS debe estar configurado inicialmente solo con autenticación integrada, no con anónima.
- Descargar el CAB del webpart del botón de inicio de sesión del siguiente link: http://www.laboratoire-microsoft.org/articles/server/sp2003/3/WPSignIn.zip, luego lo descomprimen en una carpeta de preferencia que se encuentre en la raiz “C”, por ejemplo: “c:\wpsignin”.
- Ahora deben instalar el WebPart, para esto ingresen al path “c:\program files\common files\microsoft shared\web server extensions\60\bin\”, en este path encontrarán el ejecutable “stsadm.exe”, que es la aplicación para instalar webparts en un servidor sharepoint.
- Ejecuten el siguiente comando: “stsadm.exe -o addwppack -filename “c:\wpsignin\WPSignIn.CAB”, si todo va bien al final deben recibir un mensaje similar a “Operation completed successfully”.
- Una vez instalado el webpart, editen el archivo “wss_minimaltrust.config” que se encuentra en el path “C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\CONFIG”.
- En la sección <securityclasses> ingresen lo siguiente:


<SecurityClass Name=”SharePointPermission”
Description=”Microsoft.SharePoint.Security.SharePointPermission,
Microsoft.SharePoint.Security, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c”/>


- Hay que definir algunos permisos adicionales en el mismo archivo agregando lo siguiente:


<CodeGroup
      class=”UnionCodeGroup”
      version=”1″
      PermissionSetName=”SignInWebPartPermission”>
      <IMembershipCondition
            class=”StrongNameMembershipCondition”
            version=”1″     
PublicKeyBlob=”0x0024000004800000940000000602000000240000525
341310004000001000100F79AA79C0E4968A660050ADD76371B2F795BE6912087
F44E70C416C26D7020841490CC60CC86B3F9D65B112127764EC9E0A33BCFF955E
C773BAC41624B31F05A394DB5D36EF18C788799D49F20131050B062ED27804E0D
001450A81626912998BDC757E1A7C5E744AE90F35DEB7DD34EAF80D4F673DACF7
9E800979CA87426B7″

      />
</CodeGroup>  


- En la sección NamedPermissionSets ingresar:


<PermissionSet
     class=”NamedPermissionSet”
     version=”1″
     Name=”SignInWebPartPermission”
     Description=”Jeu de permissoin du WebPart SignIn”>
     <IPermission
           class=”AspNetHostingPermission”
           version=”1″
           Level=”Medium”
     />
     <IPermission
            class=”SecurityPermission”
            version=”1″
            Flags=”Execution”
      />
      <IPermission class=”WebPartPermission”
            version=”1″
            Connections=”True”
      />
      <IPermission class=”SharePointPermission”
            version=”1″
            Unrestricted=”True”
      />
</PermissionSet>


- NOTA: en el mismo archivo ZIP existe un ejemplo de la sección exacta donde va cada una de estas porciones de XML.


- Editen el archivo web.config de la carpeta wwwroot y agreguen lo siguiente:


< appSettings >
< add key=”SPS-EnforceIISAnonymousSetting” value=”false” / >
< /appSettings >  


- Reinicien el IIS.
- Ingresen al sitio del portal principal, editen el portal, y en la biblioteca virtual de web parts encontrarán el botón de “Sign In” disponible, agreguenlo a una sección del portal; cuando lo hagan en realidad solo verán el título del webpart mas no un botón físico, esto es normal, el botón solo aparece cuando acceden al portal desde Internet.
- Ahora si, accedan a las propiedades del sitio de sharepoint en el IIS y configuren acceso anónimo.
- Reinicien una vez más el IIS y LISTO….!!!!