Navision Business Central Legitimationstype NavUserPassword

Business Central eller Navision-webklienten er blevet større siden 2018-versionen! Og den fortsætter med at vokse. Siden da har der næppe været nogen god grund til at bruge Windows-klienten. Siden Business Central 2019 (Nav Fall Release 2018) (BC15) er der derfor ikke længere en Windows-klient. Du skal blot åbne en browser, indtaste URL'en og begynde at arbejde med Navision eller Business Central med det samme. I øvrigt også på tværs af virksomhedsgrænser: Webklienten erstatter fuldstændigt fjernadgang som RDP-klient (Remote Desktop Protocol), Teamviewer, VNC og andre fjernadgangsteknologier!

Inden for et Windows-domæne er det stadig mest praktisk at logge ind via Windows, og det understøttes af Navision som standard. Bare Navision og Business Central som beskrevet her og så er du i gang. Især med webklienten! Hvis browseren beder om login-data: Indtast blot dine Windows-adgangsdata, så er du færdig.

Men hvad nu, hvis du vil bruge klienten eksternt, uden for en VPN, uden for et Windows-domæne? Så er der ingen Windows-adgangsdata at indtaste. Intet er nemmere end det: Skift Navision til legitimationstypen NavUserPassword, og... Intet virker længere!

Løsningen findes hurtigt i Event Viewer: Navision kræver nu et certifikat! Hændelsesviseren rapporterer fejlen:

Serverinstans: xxxx
Type: Microsoft.Dynamics.Nav.Types.NavConfigurationException
SuppressMessage: False
ContainsPersonalOrRestrictedInformation: False
DiagnosticsSuppress: False
MessageWithoutPrivateInformation: Certifikatet med fingeraftrykket blev ikke fundet i CurrentUser- eller LocalMachine-hukommelsen.
Microsoft.Dynamics.Nav.Types.CertificateHelper.FindCertificateFromThumbprint(String certificateThumbprint)


Microsoft vil her beskytte brugeren mod sig selv og autentificerer i denne konstellation kun via et certifikat. Uanset om du ønsker eller har brug for dette ekstra sikkerhedsniveau. Så smøg ærmerne op og kom i gang. Også meget nemt siden 2018 takket være nye Powershell-scripts. Heksenes dans med makecert.exe er ikke længere nødvendig!

Vær opmærksom! Det er vigtigt at være opmærksom! Den følgende certifikatgenerering skaber et såkaldt selvsigneret certifikat, ligesom makecert.exe gjorde tidligere. Det fungerer til den opgave, der er beskrevet her. Men det virker ikke, hvis du vil frigive Navision- eller Business Central-webservices, som er meget tæt på emnet, på internettet! I dette tilfælde har du absolut brug for et offentligt signeret certifikat, som du kan få fra forskellige udstedere og også fra LetsEncrypt.

Bemærk: Du kan også bruge et andet tilgængeligt certifikat, og i så fald skal du blot springe trinene for oprettelse af et nyt selvsigneret certifikat over. Ellers er det nemmest at udføre de følgende trin på Business Central- eller Navision-databaseserveren.

Forberedelse: Du skal bruge Powershell-scriptet New-SelfSignedCertificateEx, som du her finde:

Download og udpak denne fil, f.eks. til c:\Temp. her vedhæftet, men jeg anbefaler selvfølgelig download direkte fra Microsoft.

  1. Start Powershell i administratortilstand
  2. skift til c:\temp (eller hvor du har gemt scriptet)
    (Tip: Du kan nøjes med at skrive de første bogstaver i de fleste kommandoer og derefter afslutte dem med TAB-tasten)
    Indstil udførelsespolitik RemoteSigned
    Bekræft forespørgslen med Y
  3. Import af moduler .\New-SelfSignedCertificateEx.ps1
  4. New-SelfSignedCertificateEx -Subject „CN=Navision-Service“ -IsCA $True -Exportable -StoreLocation LocalMachine -FriendlyName „NavUserAndPassword“ -NotAfter $([datetime]::now.AddYears(5))

Du kan selvfølgelig ændre pladsholderne for certifikatnavnet og adgangskoden, som du vil.
„Navision service“ henviser til servernavnet! I slutningen af denne vejledning finder du en mulighed for at ændre dette navn via konfigurationsfilerne. Anbefaling: Indtast den korrekte DnsIdentiy lige her! (computernavn ved installation af Business Central eller Navision).
Luk ikke skallen efter opkaldet, du har stadig brug for tommelfingeraftrykket.
Denne kommando opretter et nyt certifikat i certifikatlageret:

Visning af et nyt certifikat i certifikatlageret for Navision/Business Central-legitimationsoplysningerne NavUserAndPassword
Visning af et nyt certifikat i certifikatlageret for Navision/Business Central-legitimationsoplysningerne NavUserAndPassword

Åbn en mmc for certifikaterne (mmc.exe, File/Add SnapIn, Certificate, Computer Account/Local Computer).
Vælg det nyoprettede certifikat, højreklik, Alle opgaver, Administrer private nøgler

Tilføj servicekontoen for Navision-serviceserveren (ofte Administrator eller Netværk/Netværkstjenester)

Kopier også certifikatet til mappen Trusted root certificates/certificates (højre museknap/copy, target folder -> paste).

Du kan nu lukke certifikatadministrationen.

Kopier nu thumbprintet fra konsollen. Det er mere pålideligt end at kopiere fra certifikatadministrationen.

Tilføj nu dette „fingeraftryk“ (bogstaveligt talt: thumbprint) til Navision-tjenestens konfiguration under Certificate Tumbprint:

Konfiguration af Navision/Business Central-tjenesten med et certifikatminiatureaftryk for legitimationstypen NavUserPassword

Computernavnet er gemt i certifikatet („Navision service“). Hvis dette afviger, kan du alternativt ændre det i :

Fejl i identitetskontrol for en udgående besked. Den forventede DNS-identitet for fjernslutpunktet var „nav-server„, men det eksterne slutpunkt har DNS-kravet „Navision-service“ er angivet. Hvis dette er et legitimt fjernslutpunkt, kan du løse problemet ved eksplicit at angive DNS-identiteten „Navision Service“ som Identity-egenskaben i EndpointAddress, når du opretter en kanalproxy.

Dette kan findes i web.config (op til Nav 2017) eller NavSettings.JSON i mappen C:\inetpub\wwwroot\Instance-Name, f.eks. C:\inetpub\wwwroot\BC140 eller ClientUserSettings.config ændret til f.eks. C:\Users\AppData\Roaming\Microsoft\Microsoft Dynamics NAV\100:

"//DnsIdentity": "DNS- eller emnenavnet fra servercertifikatet.",
                       "DnsIdentity": "NAV-server",

Skift posten i Dns Identity fra „NAV server“ (i dette eksempel) til „Navision service“: Anbefaling: Opret certifikatet direkte med den matchende DNS-post!