Compartir a través de


AuthZ produce un error de acceso denegado cuando una aplicación realiza comprobaciones de acceso en Windows Server

En este artículo se proporciona una solución a un problema en el que AuthZ produce un error de acceso denegado cuando una aplicación realiza comprobaciones de acceso en Windows Server.

Número de KB original: 4055652

Síntomas

Considere el caso siguiente:

  • Está trabajando en un entorno de Active Directory basado en Windows Server 2008 R2 o una versión posterior.
  • Ejecute una aplicación que use la interfaz authorization (AuthZ). Estas aplicaciones incluyen Microsoft Exchange 2016 y Microsoft Exchange 2013.

En este escenario, cuando la aplicación intenta realizar una comprobación de acceso, AuthZ produce un error y devuelve un mensaje de error acceso denegado.

Causa

Este problema se produce porque el acceso a la red: restringir los clientes que pueden realizar llamadas remotas a la directiva SAM está habilitado. La directiva controla qué usuarios pueden enumerar usuarios y grupos en la base de datos local del Administrador de cuentas de seguridad (SAM) y en Active Directory.

Esta directiva se presenta después de instalar las siguientes versiones de Windows o De Windows:

  • Windows 10, versión 1607 y versiones posteriores
  • Windows 10 versión 1511 con KB 4103198 instalado
  • Windows 10 versión 1507 con KB 4012606 instalado
  • Windows 8.1 con KB 4102219 instalado
  • Windows 7 con KB 4012218 instalado
  • Windows Server 2016 RS1 y versiones posteriores
  • Windows Server 2012 R2 con KB 4012219 instalado
  • Windows Server 2012 con KB 4012220 instalado
  • Windows Server 2008 R2 con KB 4012218 instalado

Nombres de directiva y registro

Nombre Descripción
Nombre de la directiva Acceso de red: evitar que clientes con permiso realicen llamadas remotas a SAM
Location Configuración del\equipo Configuración de Windows Opciones\\de seguridad Opciones de seguridad Directivas locales\Opciones de seguridad
Subclave del Registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\RestrictRemoteSam
Tipo de Registro REG_SZ
Valor del Registro Cadena que contiene el SDDL del descriptor de seguridad que se va a implementar.

Restrinja los clientes permitidos para realizar llamadas remotas al cuadro de diálogo de configuración de directiva SAM.

Al definir la directiva mediante las herramientas de administración de Windows Server 2016, el valor predeterminado es permitir que solo los administradores accedan a esta interfaz.

El error mencionado en la sección "Síntomas" se produce si se cumplen las condiciones siguientes:

  • La directiva está habilitada en los controladores de dominio.
  • La cuenta del servidor que ejecuta Exchange Server no puede usar la interfaz .

Solución

Para corregir este problema, use uno de los métodos siguientes.

Método 1: Actualización de la directiva para permitir el acceso

En el grupo, los servidores que tienen que acceder a la interfaz se agregan como miembros.

Por ejemplo, el grupo universal "Servidores exchange" requiere este acceso.

Si la aplicación no tiene un grupo que contenga las cuentas necesarias, es posible que tenga que crear y mantener dicho grupo. Esta es la solución recomendada porque proporciona acceso a un grupo específico de la tarea.

Método 2: Deshabilitar la directiva

Borre la entrada del Registro RestrictRemoteSAM o quite la directiva.

Nota:

En los controladores de dominio, puede definir permisos por objeto para controlar la visibilidad de las cuentas. Estas llamadas RPC de SAM remotas respetan estos permisos. No puede hacerlo para las cuentas de miembros o equipos independientes.

Más información

Para obtener más información, consulte el artículo siguiente:
Acceso de red: evitar que clientes con permiso realicen llamadas remotas a SAM

Ejemplo de problema en Exchange Server

Considere el caso siguiente:

  • Está ejecutando Active Directory junto con Windows Server 2008 R2 o una versión posterior.
  • Está ejecutando Microsoft Exchange 2016 o Microsoft Exchange 2013 como plataforma de colaboración por correo electrónico.

Nota:

Aunque en este ejemplo se especifica Exchange Server, este problema se aplica de forma similar a otras aplicaciones que usan AuthZ de esta manera.

En este escenario, se produce un error en la generación de libretas de direcciones sin conexión (OAB) en el servidor que ejecuta Exchange Server 2016.

Además, verá una entrada para el evento 17004 (origen: proveedor de asistentes de buzón de MSExchange) similar al siguiente. Esta entrada se registra en el registro de la aplicación en el servidor en el que se monta el buzón de arbitraje "SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}" que se usa para generar la OAB.

Error en la generación de la libreta de direcciones sin conexión "\Default Offline Address Book".
Dn: CN=Libreta de direcciones sin conexión predeterminada,CN=Listas de direcciones sin conexión,CN=Listas de direcciones
Container,CN=Companyname,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=company,DC=com ObjectGuid: 543b7f18-2750-4969-9afd-e333a0542406
Estadísticas:
S:Exp=Microsoft.Exchange.Security.Authorization.AuthzException: AuthzInitializeContextFromSid failed for User SID: S-1-5-21-.... ---> System.ComponentModel.Win32Exception: Access is denied
--- Fin del seguimiento de la pila de excepción interna ---
at
Microsoft.Exchange.Security.Authorization.ClientSecurityContext.InitializeContextFromSecurityAccessToken(AuthzFlags flags)
en Microsoft.Exchange.Security.Authorization.ClientSecurityContext.. ctor(ISecurityAccessToken securityAccessToken, marcas AuthzFlags)
en Microsoft.Exchange.MailboxAssistants.Assistants.OABGenerator.PropertyManager.. ctor(OfflineAddressBook offlineAddressBook, SecurityIdentifier userSid, String userDomain, Boolean habEnabled, Boolean ordinalSortedMultivaluedProperties, Int32 httpHomeMdbFixRate, IOABLogger logger)
en Microsoft.Exchange.MailboxAssistants.Assistants.OABGenerator.OABGenerator.Initialize()
en Microsoft.Exchange.MailboxAssistants.Assistants.OABGenerator.OABGeneratorAssistant. BeginProcessingOAB(AssistantTaskContext assistantTaskContext)
en Microsoft.Exchange.MailboxAssistants.Assistants.OABGenerator.OABGeneratorAssistant.<>c__DisplayClass12.<SafeExecuteOabTask>b__e()
en Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch(Action tryDelegate, Func'2 filterDelegate, Action'1 catchDelegate)
at Microsoft.Exchange.MailboxAssistants.Assistants.OABGenerator.OABGeneratorAssistant.SafeExecuteOabTask(OABGeneratorTaskContext context)
en Microsoft.Exchange.MailboxAssistants.Assistants.OABGenerator.OABGeneratorAssistant.<>c__DisplayClassc.<ProcessAssistantStep>b__9()
en Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch(Action tryDelegate, Func'2 filterDelegate, Action'1 catchDelegate)

Cuando se genera la libreta de direcciones sin conexión, Exchange comprueba si el Asistente para buzones puede ejecutar la tarea. El buzón del sistema SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} es una cuenta de usuario deshabilitada en el contenedor de usuarios del dominio raíz del bosque. Exchange usa el motor AuthZ de Windows para esta tarea.

Al examinar el seguimiento de red de lo que hace el servidor que ejecuta Exchange Server, observará un error en la solicitud de Kerberos S4U similar a la siguiente:

KerberosV5 10.10.10.11 16268 10.10.10.10 Kerberos(88) KRB_TGS_REQ, Realm: AND. CORP, Sname: XXXXX

PADataType PA-FOR-USER (129) 12408 48 Int64

UserRealm AND 296 56 String

UserName SM_0ddc5cc213b943a5b 16 280 KerberosV5.PrincipalName

->Esto indica que AuthZ está probando Kerberos S4U.

2017-10-27T16:34:52.1334577 0,0041316 10772 15016 KerberosV5 510.10.10.10 Kerberos(88) 10.10.10.11 16268 KRB_ERROR, KDC_ERR_CLIENT_REVOKED: Se han revocado las credenciales de los clientes, status:
STATUS_ACCOUNT_DISABLED

->Esto es excpectado ya que la cuenta buzón del sistema está deshabilitada.

AuthZ intenta recuperarse de este error consultando el atributo tokenGroupsGlobalAndUniversal del buzón del sistema y, a continuación, continúa enumerando los grupos domain-local. La sesión LDAP está cifrada. Por lo tanto, no puede ver el resultado en un seguimiento de red.

El siguiente paso es recuperar los grupos de dominio local. AuthZ usa SAM RPC para recuperar estas pertenencias a grupos. Cuando el programa se conecta al controlador de dominio, recibirá un aviso de error similar al siguiente:

12035 SAMR 10.10.10.11 6457 10.10.10.16 SMB(445) _SamrConnect5Request{ServerName=\\,Cont-DC1.company.comDesiredAccess=32,InVersion=1,InRevisionInfo=SAMPR_REVISION_INFO{V1=SAMPR_REVISION_INFO_V1{Revision=3,SupportedFeatures=0}}}
FileId Persistent = 0x0000002800008761, Volatile = 0x0000002800000005 576 128 SMB2. SMB2Fileid

Esto produce un error y devuelve el mensaje siguiente:

12036 MSRPCE 0 10.10.10.16 SMB(445) 10.10.10.11 6457 RpcconnFaultHdrT, Llamada: 0x00000002, Contexto:
0x0001, Estado: ERROR_ACCESS_DENIED, Cancela: 0x00
SMB2 0 10.10.10.16 SMB(445) 10.10.10.11 6457 IoctlResponse, Status: Success, FileName:
samr@# 0x0000002800008761, CtlCode: FSCTL_PIPE_TRANSCEIVE

En el registro de eventos del sistema del controlador de dominio, se registra el evento 16969, como se indica a continuación:

Nombre de registro: Sistema
Origen: Microsoft-Windows-Directory-Services-SAM
Identificador de evento: 16969
Nivel: Advertencia
Descripción:
8 llamadas remotas a la base de datos SAM se han denegado en la última ventana de limitación de 900 segundos.
Para obtener más información, consulte https://go.microsoft.com/fwlink/?LinkId=787651.

Si tiene deshabilitada la limitación, verá un evento 16965 para cada incidente de denegación de acceso junto con la información del cliente.

Recolección de datos

Si necesita ayuda del soporte técnico de Microsoft, se recomienda recopilar la información siguiendo los pasos mencionados en Recopilación de información mediante TSS para problemas de directiva de grupo.