Solución de problemas del error 0x80070005 (Acceso denegado) de WinCC OPC DA / DCOM en PCS 7

La conexión de clientes OPC DA externos a un servidor OS WinCC de SIMATIC PCS 7 a menudo se aborta con el error DCOM 0x80070005 (Access is Denied - Acceso denegado) debido a las restricciones de seguridad endurecidas de Windows Distributed COM. Cuando un cliente OPC descubre el servidor a través de OPCEnum pero no logra activar el CLSID del servidor OPC de WinCC {75D00BBB-DDA5-11D1-B944-9E614D000000}, Windows rechaza la llamada remota entrante. Resolver el error 0x80070005 requiere agregar la cuenta de usuario del cliente a los grupos de seguridad Distributed COM Users y SIMATIC HMI, configurar los límites predeterminados de ejecución y acceso de DCOM, ejecutar el Siemens Security Controller y apuntar al nodo de servidor redundante correcto.

Índice de contenidos

Mecanismos de seguridad de OPC DA y DCOM en SIMATIC WinCC

SIMATIC WinCC actúa como servidor OPC Data Access (OPC DA 2.05a / 3.0) mediante el componente de comunicación interno SopcDaSrv.exe, registrado bajo el CLSID {75D00BBB-DDA5-11D1-B944-9E614D000000} (OPCServer.WinCC):

  • Fase de descubrimiento (OPCEnum): El cliente se comunica con el servicio OPCEnum.exe del servidor remoto a través del puerto TCP 135 para enumerar los servidores OPC instalados. Si el ping de red y el puerto 135 están abiertos, el descubrimiento se realiza con éxito.
  • Activación y llamada a procedimiento remoto (RPC): Cuando el cliente intenta instanciar OPCServer.WinCC, el subsistema DCOM de Windows evalúa la identidad de la persona que llama frente a los descriptores de seguridad locales.
  • Manifestación del error: Si la cuenta de Windows del cliente carece de tokens explícitos de activación de ejecución o acceso, la capa DCOM bloquea la solicitud de creación y devuelve el HRESULT 0x80070005 (E_ACCESSDENIED).

Causas raíz del error DCOM 0x80070005 (Acceso denegado)

Los principales factores que contribuyen a la denegación de acceso incluyen:

  1. Falta de pertenencia a grupos: La cuenta de usuario que ejecuta la aplicación cliente OPC no pertenece a los grupos de seguridad Distributed COM Users y SIMATIC HMI en el servidor WinCC.
  2. Límites estrictos de DCOM en la máquina: Windows Server 2016 y 2019 aplican restricciones estrictas de acceso y ejecución de la máquina DCOM (dcomcnfg) que anulan los permisos locales específicos de la aplicación a menos que se otorguen explícitamente.
  3. Credenciales de grupo de trabajo no coincidentes: Cuando se opera fuera de un dominio de Active Directory, deben existir nombres de usuario y contraseñas locales idénticos en ambas máquinas. Una discrepancia en el token autenticado desencadena una denegación inmediata.
  4. Confusión sobre el objetivo del servidor redundante: En pares de servidores OS WinCC redundantes, conectarse a OPCServer.WinCC en el servidor en espera sin especificar el índice del servidor redundante o configurar la conmutación por error mutua puede provocar el rechazo de la conexión.

Configuración paso a paso de DCOM y seguridad en el servidor WinCC

Ejecute esta configuración progresiva en el servidor OS WinCC que aloja la interfaz OPC:

Paso 1: Agregar el usuario cliente a los grupos de seguridad obligatorios

  1. Abra la Administración de equipos de Windows (compmgmt.msc).
  2. Vaya a Usuarios y grupos locales -> Grupos.
  3. Busque el grupo Distributed COM Users:
    * Agregue la cuenta de usuario de Windows (por ejemplo, DOMINIO\OpcServiceAccount o el usuario local correspondiente) que ejecuta el cliente OPC.
  4. Busque el grupo SIMATIC HMI:
    * Agregue la cuenta de usuario cliente para garantizar el acceso a la memoria compartida de Runtime de WinCC.
  5. Haga que el usuario cierre sesión y vuelva a iniciarla para actualizar las membresías de los grupos de tokens.

Paso 2: Configurar los límites DCOM del sistema en DCOMCNFG

  1. Abra el cuadro de diálogo Ejecutar de Windows (Win + R), escriba dcomcnfg y presione Intro.
  2. Vaya a Servicios de componentes -> Equipos -> Mi PC.
  3. Haga clic derecho en Mi PC y seleccione Propiedades.
  4. Seleccione la pestaña Seguridad de COM:
    * En Permisos de acceso, haga clic en Editar límites...:
    • Asegúrese de que ANONYMOUS LOGON, Distributed COM Users y SIMATIC HMI estén presentes.
    • Conceda Acceso local y Acceso remoto (Permitir).
    • En Permisos de inicio y activación, haga clic en Editar límites...:
    • Asegúrese de que Distributed COM Users y SIMATIC HMI estén presentes.
    • Conceda Inicio local, Inicio remoto, Activación local y Activación remota (Permitir).
  5. Haga clic en Aceptar para aplicar.

Paso 3: Ejecutar Siemens Security Controller

  1. Abra el menú Inicio e inicie Siemens Security Controller.
  2. Haga clic en Repeat Settings (Repetir configuración) para alinear de nuevo los permisos de registro específicos de Siemens, los puertos de firewall y las políticas de puntos de conexión DCOM.

Configuración de usuarios de Distributed COM y autenticación de Windows

En entornos de grupo de trabajo (sin dominio) donde el cliente OPC se encuentra en una red separada:

  • Sincronización de cuentas locales: Cree una cuenta de usuario local idéntica en el servidor WinCC que coincida exactamente con el nombre de usuario y la contraseña de la cuenta del cliente.
  • Modelo de uso compartido de acceso a la red: En la Directiva de seguridad local de Windows (secpol.msc), vaya a Opciones de seguridad -> Acceso a la red: modelo de uso compartido y seguridad para cuentas locales. Asegúrese de que esté configurado en Clásico: los usuarios locales se autentican como ellos mismos (no Invitado solamente).

Convenciones de nomenclatura de instancias OPC en servidores OS redundantes

En sistemas SIMATIC PCS 7 redundantes:

  • El servidor primario normalmente aloja OPCServer.WinCC.
  • El servidor asociado secundario puede registrar su instancia con un sufijo de índice: OPCServer.WinCC.1.
  • Si un cliente de terceros (como AspenTech CIMIO, Kepware o Matrikon) no logra conectarse al nodo primario debido a un bloqueo activo de exclusividad del cliente, configurar el cliente para consultar OPCServer.WinCC.1 en el servidor en espera verifica si la contención de recursos en el lado del servidor es la causa raíz.
  • Para una redundancia automatizada, implemente WinCC Connectivity Pack o OpenPCS 7, que proporciona un mecanismo de cambio de cliente OPC DA entre servidores redundantes.

Verificación

Confirme que la comunicación OPC DA sea exitosa:

  1. Verificación local con OPC Scout:
    * En el servidor WinCC, inicie OPC Scout V10 (o Siemens OPC Scout).
    * Conéctese localmente a OPCServer.WinCC y explore el espacio de nombres de etiquetas. Confirme que las variables de proceso se lean con código de calidad Good.
  2. Prueba de conexión de cliente remoto:
    * En la PC cliente OPC remota, inicie la interfaz del cliente (o el OPC Scout remoto).
    * Conéctese a OPCServer.WinCC en el nodo del servidor.
    * Confirme que el error 0x80070005 ya no aparece y que las etiquetas se suscriben correctamente.
  3. Auditoría del Visor de eventos:
    * Inspeccione los registros de Sistema del Visor de eventos de Windows en el servidor; verifique que no se registren errores de DCOM Event ID 10016 o 10006.

Limitaciones y precauciones operativas

  • Actualizaciones de endurecimiento de DCOM (KB5004442): Los sistemas operativos Windows modernos aplican un endurecimiento de la autenticación DCOM. Asegúrese de que todas las aplicaciones cliente OPC admitan RPC_C_AUTHN_LEVEL_PKT_INTEGRITY para evitar la caída de conexiones.
  • Obsolescencia de la tecnología OPC DA: OPC DA se basa en la tecnología heredada COM/DCOM de Microsoft. Para nuevas instalaciones o integraciones entre redes, migre a OPC UA (Open Platform Communications Unified Architecture) a través de OpenPCS 7 para eliminar por completo la complejidad de DCOM.
  • Requisitos de puertos de firewall: OPC DA requiere el puerto TCP 135 más puertos TCP RPC dinámicos (normalmente 49152–65535). Restringir los puertos RPC dinámicos en los firewalls corporativos requiere una configuración de puertos DCOM fijos.

Preguntas frecuentes para ingenieros

  • ¿Qué significa el código de error 0x80070005 en la comunicación OPC de WinCC?
    Es el HRESULT estándar de Windows para 'Acceso denegado', lo que indica que la seguridad DCOM impidió que el cliente activara o accediera al servidor OPC de WinCC.
  • ¿Por qué el cliente OPC puede descubrir el servidor pero falla al conectarse?
    El descubrimiento lo maneja OPCEnum.exe, que tiene requisitos de acceso más flexibles; activar OPCServer.WinCC requiere permisos completos de inicio y activación DCOM.
  • ¿A qué grupos locales de Windows debe pertenecer el usuario cliente OPC en el servidor?
    El usuario debe pertenecer a Distributed COM Users y SIMATIC HMI.
  • ¿Cuál es el identificador programático (ProgID) para el servidor OPC DA de WinCC?
    El ProgID es OPCServer.WinCC (o OPCServer.WinCC.1 en estaciones redundantes secundarias).
  • ¿WinCC OPC DA admite conexiones sin autenticación de usuario?
    Windows DCOM requiere autenticación; se puede otorgar acceso anónimo (Anonymous Logon) a los límites de acceso en dcomcnfg, pero se recomiendan encarecidamente cuentas de usuario autenticadas.
  • ¿Cómo ayuda Siemens Security Controller a resolver los problemas de DCOM?
    Security Controller restablece y endurece automáticamente las reglas de DCOM, registro y firewall requeridas para la comunicación de software industrial de Siemens.
  • ¿Qué es OpenPCS 7 en relación con la comunicación OPC de WinCC?
    OpenPCS 7 es un paquete de comunicación opcional de Siemens que proporciona acceso centralizado a OPC DA, OPC HDA y OPC A&E en toda una planta PCS 7.
  • ¿Puedo usar un cliente OPC de terceros como Kepware o Matrikon con WinCC?
    Sí, cualquier cliente OPC DA 2.05a o 3.0 compatible con OPC Foundation puede comunicarse con WinCC, sujeto a la validación de seguridad DCOM.
  • ¿Qué sucede si el servidor WinCC primario falla en un par redundante?
    Los clientes OPC DA estándar no admiten la conmutación por error automática a menos que estén configurados con un middleware de redundancia (como OpenPCS 7 o intermediarios de redundancia del lado del cliente).
  • ¿Por qué se prefiere OPC UA a OPC DA para conexiones remotas?
    OPC UA opera a través de TCP/IP estándar (puerto único, por ejemplo, 4840), utiliza cifrado basado en certificados y elimina por completo las vulnerabilidades de Microsoft DCOM.

Referencias técnicas

  • Portal Siemens Industry Online Support (SIOS): ¿Qué ajustes de DCOM se deben comprobar para WinCC con OPC DA? (ID de entrada: 109768431).
  • Documentación técnica de Microsoft: Gestión de la seguridad DCOM y directrices de endurecimiento.
  • OPC Foundation: Estándar de interfaz personalizada OPC Data Access (Versión 3.0).

Artículos relacionados

Etiquetas relacionadas

PCS 7, WinCC, OPC DA, DCOM, Error 80070005, Access Denied, OPCEnum, Network Security

20 respuestas