Update

Callback zur Benachrichtigung über die Erneuerung des Kanal-Tokens.

Breaking change

  • Nach einer kürzlich durchgeführten Sicherheitsüberprüfung erzwingen die Https-Server-Endpunkte auf Anfrage die gegenseitige TLS-Authentifizierung und ändern das Verhalten ohne diese.
  • Es wird dringend empfohlen, nur gegenseitige TLS-Authentifizierung zu verwenden. Einige Clients unterstützen das neue Schema möglicherweise noch nicht.
  • Eine neue Konfigurationsvariable
    <httpsmutualtls>true</httpsmutualtls> aktiviert oder deaktiviert die Unterstützung der gegenseitigen TLS-Authentifizierung (Standard: true).

Das Verhalten des https TLS Endpunktes ändert sich entsprechend der folgenden Einstellungen:

HttpsMutualTls ist true

  • Der Server prüft die Vertrauenswürdigkeit des Zertifikats, das vom Client für die TLS-Authentifizierung verwendet wird. Es muss ein gültiges OPC UA Anwendungszertifikat sein, dem vertraut wird.
  • Ein Client kann sich auch ohne Client-Zertifikat verbinden, kann dann aber nur Discovery Services aufrufen.
  • Um eine Sitzung zu erstellen, muss der Client das gleiche Anwendungszertifikat verwenden, das für den TLS-Kanal verwendet wurde.

HttpsMutualTls ist falsch

  • Es findet keine Anwendungsauthentifizierung statt. Der Server-Endpunkt verwendet die Sicherheit None und es findet keine Authentifizierung der Client-Anwendung statt.
  • Stattdessen wird nur die Benutzerauthentifizierung zur Sicherung des Servers verwendet, die anonyme Benutzerauthentifizierung ist deaktiviert.
  • Discovery-Dienstaufrufe werden unterstützt.

Erweiterungen

  • Unterstützt native .NET 9-Assemblies. Ein neuer X509CertificateLoader wurde für ältere .NET-Versionen eingeführt, um den Code ohne ifdef lesbar zu halten.
  • Server GDS Push CreateSigningRequest unterstützt die Regeneration des öffentlich/privaten Schlüsselpaares. von @romanett.
  • Callback zur Benachrichtigung über die Erneuerung des Kanal-Tokens.
  • Server-Erkennungsalgorithmus für Clients, die versuchen, die bekannte Basic128Rsa15-Schwachstelle auszunutzen.

Fehlerbehebungen

  • Client ReadNodes löst einen BadInvalidType aus, wenn ein Wertetyp null zurückgibt.
  • Client-Lesen von großen Wörterbüchern wird in Stücke aufgeteilt. von @ThomasNehring.
  • Gemischte opc.https und https Endpunkte verhindern das Starten eines Servers.
  • Server-Endpunkt-Zertifikate wurden nach GDS Push UpdateCertificate nicht aktualisiert. von @romanett.
  • Ereignisberichte ignorieren Sitzungskontext. von @Filippo-Oliva-ABB.
  • Akzeptiert Namespace Uri, die nicht gut geformt sind. Strengere Handhabung wurde in der vorherigen Version hinzugefügt, aber für IOP ist wieder gelockert.
  • Das Lesen komplexer Typen von einem Server konnte eine Null-Pointer-Exception in BinaryDecoder verursachen. von @marcschier.
  • Das Lesen von Operationslimits konnte eine Exception verursachen (Operationslimits wurden daher ignoriert).
  • CRL mit ungültigem Inhalt konnte zu einer Exception führen, wenn Property mit Lazy Decoding gelesen wurde, CRL immer dekodieren, wenn constructore aufgerufen wird, um Probleme frühzeitig zu erkennen.
  • Kanal-Token HMAC-Referenzen wurden nach einer Kanalerneuerung nicht entsorgt.
  • Erlaubt die Dekodierung von Erweiterungsobjekten, die die Länge auf -1 setzen.
  • Fix für CauseMappings und Fehler in ConditionRefresh/2 von @Archie-Miller

Was sich geändert hat

  • Bump Serilog und System.Diagnostics.DiagnosticSource von @dependabot in #2780
  • Update CauseMappings zur korrekten Unterstützung von Übergängen von @Archie-Miller #2877
  • ConditionRefreshAsync führt immer zu BadNodeIdUnknown von @Archie-Miller #2876
  • [Server] GDS-Push: Enable regeneratePrivatekey for CreateSigningRequest method of Server by @romanett in #2778
  • Client ReadNodes, werfe BadInvalidType, wenn ein von einem Attribut zurückgegebener Werttyp null ist von @mregen in #2746
  • [Client] Große Wörterbücher lesen von @ThomasNehring in #2782
  • Server startet nicht mit gemischten https-Endpunkten von @mregen in #2789
  • #2777 Korrektur für - MonitoredItem2.OnReportEvent ignoriert Sitzung im ISystemContext während des Benachrichtigungsprozesses von @Filippo-Oliva-ABB in #2779
  • Server] Aktualisierung der Endpunktbeschreibungen nach Zertifikatsaktualisierung von @romanett in #2735
  • Verschiebung des geänderten Referenzservers aus dem Unit-Test in eine eigene Datei von @ThomasNehring in #2725
  • #2656 Fix für - Session wird von ClearChangeMasks nicht bereitgestellt, wenn eine Änderung gemeldet wird von @Filippo-Oliva-ABB in #2772
  • Revert "#2656 Fix für - Session wird von ClearChangeMasks nicht zur Verfügung gestellt, wenn... von @mregen in #2792
  • Fix ExpandedNodeId.Format Ausgabe für nicht wohlgeformte uri und JSON Verbose WriteStatusCode von @mregen in #2794
  • Nullpointer-Ausnahme beim Lesen eines komplexen Typs aus umati server.... von @marcschier in #2798
  • ReturnDiagnostics zum Session-Konstruktor hinzufügen von @romanett in #2810
  • IOP: FetchOperationLimits für einige Anwendungsfälle korrigieren by @mregen in #2807
  • Aktualisiere version.json, um Vorschau-Builds von develop zu ermöglichen von @mregen in #2813
  • Behebt Fehler im JSON-Decoder von @mregen in #2828
  • Aktualisiere brokerHostName bevor MqttClientOptionsBuilder dessen Wert verwendet von @mrsuciu in #2830
  • Verbessern der crl-Behandlung in Zertifikatspeichern von @romanett in #2829
  • Die Verwendung von Uri.TryCreate verursacht eine Regression mit Namespace Uri, die gemischte Klein-/Großbuchstaben in der Uri verwenden. by @KircMax in #2837
  • KanalToken: HMAC entsorgen und Lebensdauerberechnung verbessern. von @mregen in #2846
  • Minimaler Mechanismus zur Erkennung von Schurkenclients auf Transportebene hinzugefügt. by @mrsuciu in #2850
  • ValidateRolePermissions für MIs, die den Wert eines Knotens überwachen, von @romanett in #2809
  • [Server] ValidateRolePermissions von MonitoredItems basierend auf der gespeicherten Benutzeridentität, um eine Validierung zu ermöglichen, wenn keine Session vorhanden ist, von @romanett in #2832
  • Unterstützt .NET 9.0 Build von @mregen in #2865
  • Verbesserungen der Client-Performance und des Speichers für JSON-Kodierung und Abonnements von @mregen in #2864
  • Callback registrieren, um über die Aktivierung eines neuen Channel-Tokens zu informieren (#2872) by @marcschier in #2873
  • [Client] Fix: KeepAliveInterval wurde bei ModifySubscription nicht aktualisiert von @romanett in #2871
  • Zusammenführen von Korrekturen aus master in den stabilen Zweig von @mregen in #2878
  • BouncyCastle.Cryptography von 2.4.0 auf 2.5.0 erhöhen von @mregen in #2875
  • Erlaube die Dekodierung von Erweiterungsobjekten für Legacy-Geräte, die die Länge nicht festlegen von @mregen in #2869
  • Aktiviere gegenseitiges tls auf Server https Endpunkten von @mrsuciu in #2849
  • Serialisierung von ApplicationConfiguration /CertificateTrustList reparieren von @romanett in #2879
  • Zusammenführen von develop/main374 in release/1.5.374 von @mregen in #2881
Der Hersteller OPC Foundation hat sein devicebase Profil noch nicht eingerichtet. Inhalte wie Updates, Kompatibilitäten und Support werden unter Umständen nur verzögert gepflegt.
Erhalten Sie wichtige Update-Nachrichten Bleiben Sie auf dem Laufenden für kommende OPC Foundation Updates

Waren die Inhalte für Sie hilfreich?

Anzeige Hier werben?
Udemy IT certification ad