Navision Business Central Credential Type NavUserPassword

El cliente web de Business Central o Navision ha crecido desde la versión 2018. Y sigue creciendo. Desde entonces, apenas ha habido una buena razón para utilizar el cliente de Windows. Por lo tanto, desde Business Central 2019 (Nav Fall Release 2018) (BC15) ya no existe un cliente Windows. Simplemente abra un navegador, introduzca la URL y empiece a trabajar con Navision o Business Central inmediatamente. Por cierto, incluso más allá de las fronteras de la empresa: ¡el cliente web sustituye completamente el acceso remoto como cliente RDP (Remote Desktop Protocol), Teamviewer, VNC y otras tecnologías de acceso remoto!

Dentro de un dominio de Windows, el inicio de sesión a través de Windows sigue siendo el método más cómodo y Navision lo admite de serie. Simplemente instale Navision y Business Central como se describe aquí y ya está. Especialmente con el cliente web. Si el navegador le pide datos de acceso: simplemente introduzca los datos de acceso de Windows y listo.

Pero, ¿y si quieres utilizar el cliente de forma remota, fuera de una VPN, fuera de un dominio de Windows? Entonces no hay que introducir datos de acceso a Windows. Nada más fácil: Cambie Navision al tipo de credencial NavUserPassword y... ¡ nada funciona!

La solución se encuentra rápidamente en el Visor de sucesos: ¡Navision requiere ahora un certificado! El visor de sucesos informa del error:

Server instance: xxxx
Type: Microsoft.Dynamics.Nav.Types.NavConfigurationException
SuppressMessage: False
ContainsPersonalOrRestrictedInformation: False
DiagnosticsSuppress: False
MessageWithoutPrivateInformation: No se ha encontrado el certificado con la huella digital en la memoria de CurrentUser o LocalMachine.
Microsoft.Dynamics.Nav.Types.CertificateHelper.FindCertificateFromThumbprint(String certificateThumbprint)


Microsoft quiere proteger aquí al usuario de sí mismo, y en esta constelación sólo autentica a través de un certificado. Independientemente de si quieres o necesitas este nivel de seguridad adicional. Así que arremángate y listo. También muy fácil desde 2018 gracias a los nuevos scripts de Powershell. ¡El baile de brujas con makecert.exe ya no es necesario!

¡Atención! ¡Importante! La siguiente generación de certificados crea un certificado autofirmado, tal y como lo hacía makecert.exe anteriormente. Esto funciona para la tarea aquí descrita. Sin embargo, ¡no funciona si desea publicar en Internet los servicios web de Navision o Business Central, que están muy relacionados con el tema! En este caso, necesita absolutamente un certificado firmado públicamente, como puede obtener de varios emisores y también de LetsEncrypt.

Nota: También puede utilizar cualquier otro certificado disponible, en cuyo caso simplemente omita los pasos para crear un nuevo certificado autofirmado. De lo contrario, lo más sencillo es realizar los siguientes pasos en el servidor de base de datos Business Central o Navision.

Preparación: Necesitas el script Powershell New-SelfSignedCertificateEx, que puedes encontrar aquí :

descargue y descomprima este archivo, por ejemplo en c:\Temp. He adjuntado el script aquí pero por supuesto recomiendo descargarlo directamente de Microsoft.

  1. Inicie Powershell en modo administrador
  2. cambie a c:\temp (o donde haya guardado el script)
    (Consejo: puede escribir sólo las primeras letras de la mayoría de los comandos y luego completarlos con la tecla TAB)
    Set-ExecutionPolicy RemoteSigned
    Confirme la consulta con Y
  3. Import-Module .\New-SelfSignedCertificateEx.ps1
  4. New-SelfSignedCertificateEx -Subject „CN=Navision-Dienst“ -IsCA $True -Exportable -StoreLocation LocalMachine -FriendlyName „NavUserAndPassword“ -NotAfter $([datetime]::now.AddYears(5))

Por supuesto, puede cambiar los marcadores de posición para el nombre del certificado y la contraseña como desee.
"Navision service" se refiere al nombre del servidor. Al final de estas instrucciones encontrará una opción para cambiar este nombre a través de los archivos de configuración. Recomendación: Introduzca aquí la DnsIdentiy correcta¡! (nombre del ordenador al instalar Business Central o Navision).
No cierre el intérprete de comandos después de la llamada, todavía necesita la huella digital.
Este comando crea un nuevo certificado en el almacén de certificados:

Anzeige eines neuen Zertifikats im Zertifikatspeicher für die Navision / Business Central Credentials NavUserAndPassword
Visualización de un nuevo certificado en el almacén de certificados para las credenciales Navision / Business Central NavUserAndPassword

Abra un mmc para los certificados (mmc.exe, File/Add SnapIn, Certificate, Computer Account/Local Computer).
Seleccione el certificado recién creado, haga clic con el botón derecho del ratón, Todas las tareas, Gestionar claves privadas

Añada la cuenta de servicio del servidor de servicios Navision (a menudo Administrador o Servicios de red/red)

Copie también el certificado en la carpeta Certificados raíz de confianza/certificados (botón derecho del ratón/copiar, carpeta de destino -> pegar)

Ahora puede cerrar la gestión de certificados.

Ahora copie el Thumbprint desde la consola. Esto es más fiable que copiar desde la gestión de certificados.

Ahora añada esta "huella digital" (literalmente: huella del pulgar) a la configuración del servicio Navision en Huella digital del certificado:

Konfiguration des Navision/Business Central Servciedienstes mit einem Certificate Thumbprint für die Credential Type NavUserPassword

El nombre del ordenador está almacenado en el certificado ("Navision service"). Si es distinto, puede modificarlo:

Error de comprobación de identidad para un mensaje saliente. La identidad DNS esperada del punto final remoto era "nav-server", pero el punto final remoto ha proporcionado la reivindicación DNS "Navision-Dienst". Si se trata de un punto final remoto legítimo, puede resolver el problema especificando explícitamente la identidad DNS "navision-service" como propiedad Identity de EndpointAddress al crear un proxy de canal.

Esto se cambia en el web.config (hasta Nav 2017) o NavSettings.JSON en, por ejemplo, la carpeta C:\inetpub\wwwroot\Instance-Name, por ejemplo, C:\inetpub\wwwroot\BC140 o ClientUserSettings.config en por ejemplo C:\Users\AppData\Roaming\Microsoft\Microsoft Dynamics NAV\100 geändert:

"//DnsIdentity":  "The DNS or subject name from the server certificate.",
                       "DnsIdentity":  "NAV-Server",

Cambie la entrada en Dns Identity de "servidor NAV" (en este ejemplo) a "servicio Navision": Recomendación: ¡Cree el certificado directamente con la entrada DNS correspondiente!