Información de Autodiscover incompleta

Hola a tod@s!

Seguro que todos estáis pensando ya en las navidades igual que nosotros :-) Antes de acabar el año os traemos información sobre problemas de solicitud de credenciales en Outlook en un escenario concreto que seguro os será de utilidad de cara a futuras migraciones a Exchange 2013.

Como ya sabéis los problemas de de solicitud de credenciales puede ser ocasionado por diversos motivos (configuración de proxy, cambios de contexto, finalización de una sesión, problemas de configuración, etc.). En nuestro caso nos encontramos en una situación extraña en la que la ventana de credenciales aparecía de forma muy aleatoria. Finalmente conseguimos verificar que el problema aparecía cuando faltaba cierta información del fichero de Autodiscover, en concreto la información de AuthPackage. En el siguiente artículo tenéis más información:

Missing AuthPackage Element in Autodiscover XML Response
https://technet.microsoft.com/en-us/library/dd439374(v=EXCHG.80).aspx

Revisando el fichero de autodiscover, dentro de la sección de EXPR no se localizaba dicha información:

      <Protocol>
        <Type>EXPR</Type>
        <Server>mail.contoso.com</Server>
        <SSL>On</SSL>
        <AuthPackage>Basic</AuthPackage>
        <ASUrl>https://mail.contoso.com/ews/exchange.asmx</ASUrl>
        <EwsUrl>https://mail.contoso.com/ews/exchange.asmx</EwsUrl>
        <EmwsUrl>https://mail.contoso.com/ews/exchange.asmx</EmwsUrl>
        <SharingUrl>https://mail.contoso.com/ews/exchange.asmx</SharingUrl>
        <EcpUrl>https://mail.contoso.com/ecp/</EcpUrl>
        <EcpUrl-um>?rfr=olk&amp;p=customize/voicemail.aspx&amp;exsvurl=1&amp;realm=contoso.com</EcpUrl-um>
        <EcpUrl-aggr>?rfr=olk&amp;p=personalsettings/EmailSubscriptions.slab&amp;exsvurl=1&amp;realm=contoso.com</EcpUrl-aggr>
        <EcpUrl-mt>PersonalSettings/DeliveryReport.aspx?rfr=olk&amp;exsvurl=1&amp;IsOWA=&lt;IsOWA&gt;&amp;MsgID=&lt;MsgID&gt;&amp;Mbx=&lt;Mbx&gt;&amp;realm=contoso.com</EcpUrl-mt>
        <EcpUrl-ret>?rfr=olk&amp;p=organize/retentionpolicytags.slab&amp;exsvurl=1&amp;realm=contoso.com</EcpUrl-ret>
        <EcpUrl-sms>?rfr=olk&amp;p=sms/textmessaging.slab&amp;exsvurl=1&amp;realm=contoso.com</EcpUrl-sms>
        <EcpUrl-photo>PersonalSettings/EditAccount.aspx?rfr=olk&amp;chgPhoto=1&amp;exsvurl=1&amp;realm=contoso.com</EcpUrl-photo>
        <EcpUrl-tm>?rfr=olk&amp;ftr=TeamMailbox&amp;exsvurl=1&amp;realm=contoso.com</EcpUrl-tm>
        <EcpUrl-tmCreating>?rfr=olk&amp;ftr=TeamMailboxCreating&amp;SPUrl=&lt;SPUrl&gt;&amp;Title=&lt;Title&gt;&amp;SPTMAppUrl=&lt;SPTMAppUrl&gt;&amp;exsvurl=1&amp;realm=contoso.com</EcpUrl-tmCreating>
        <EcpUrl-tmEditing>?rfr=olk&amp;ftr=TeamMailboxEditing&amp;Id=&lt;Id&gt;&amp;exsvurl=1&amp;realm=contoso.com</EcpUrl-tmEditing>
        <EcpUrl-extinstall>Extension/InstalledExtensions.slab?rfr=olk&amp;exsvurl=1&amp;realm=contoso.com</EcpUrl-extinstall>
        <OOFUrl>https://mail.contoso.com/ews/exchange.asmx</OOFUrl>
        <UMUrl>https://mail.contoso.com/ews/UM2007Legacy.asmx</UMUrl>
        <OABUrl>https://mail.contoso.com/OAB/6d365fdf-6030-4d20-820e-ccecacc02da6/</OABUrl>
        <ServerExclusiveConnect>on</ServerExclusiveConnect>
        <CertPrincipalName>msstd:mail.contoso.com</CertPrincipalName>
        <EwsPartnerUrl>https://mail.contoso.com/ews/exchange.asmx</EwsPartnerUrl>
        <GroupingInformation>Default-First-Site-Name</GroupingInformation>
      </Protocol>

Realizando múltiples pruebas pudimos ver que cuando dicha información no se recibe el cliente Outlook utiliza autentificación básica generando el prompt de credenciales. Dicho prompt no generaba ningún error, es decir, tanto si se introducían las credenciales como si cancelábamos la ventana el resultado era el mismo. Los usuarios mantenían la conexión sin ningún tipo de problema. Esta situación la hemos encontrado en entornos en los que se está realizando una migración desde Exchange 2007/2010 a Exchange 2013.

Finalmente, capturando trazas de bajo nivel pudimos observar que durante la consulta de Autodiscover el servidor CAS que recibe dicha petición solicita a Directorio Activo información sobre la publicación de Outlook Anywhere. En caso de tener Outlook Anywhere habilitado en distintos servidores la información de configuración se obtendrá de cualquiera de ellos. En el entorno que nos encontrábamos dicha información podía venir de un servidor legacy (2007 ó 2010) o un servidor 2013. Revisando trazas de bajo nivel pudimos ver lo siguiente:

En caso de obtener la información de configuración de un servidor Exchange 2007 ó 2010:

msExchExternalAuthenticationMethods: Ntlm
msExchInternalAuthenticationMethods: Basic, Ntlm

Por otro lado, si obtenemos la información de configuración de un servidor Exchange 2013 obtenemos los siguientes valores:

msExchExternalAuthenticationMethods: 8192
msExchInternalAuthenticationMethods: 8195

Estos valores corresponden a lo siguiente:

ExternalClientAuthenticationMethod: Negotiate
InternalClientAuthenticationMethod: NTLM
IISAuthenticationMethods: {Basic, Ntlm, Negotiate}

En este caso las versiones legacy de Exchange no soportan el método de autentificación fijado por lo que no es capaz de procesar y enviar dicha información a la máquina cliente.
Para corregir el problema es necesario modificar la autentificación de Outlook Aywhere de los servidores Exchange 2013, ejemplo:

Set-OutlookAnywhere –Identity “servername\Rpc (Default Web Site)” –ExternalClientAuthenticationMethod NTLM –InternalClientAuthenticationMethod NTLM –IISAuthenticationMethods NTLM

Esperamos que os sea de utilidad!

Saludos!
Pablo