View Issue Details

IDProjectCategoryView StatusLast Update
000947810000-005: Information ModelSpecpublic2024-03-19 22:33
ReporterJim Luth Assigned ToJeff Harding  
PrioritynormalSeverityminorReproducibilityN/A
Status assignedResolutionopen 
Summary0009478: [Part 4] endpointUrl in createSession document unclear
Description

https://reference.opcfoundation.org/v104/Core/docs/Part4/5.6.2/
The documentation for the endpointUrl string states:

The network address that the Client used to access the Session Endpoint.
The HostName portion of the URL should be one of the HostNames for the application that are specified in the Server’s ApplicationInstanceCertificate (see 7.2). The Server shall raise an >AuditUrlMismatchEventType event if the URL does not match the Server’s HostNames. AuditUrlMismatchEventType event type is defined in OPC 10000-5.
The Server uses this information for diagnostics and to determine the set of EndpointDescriptions to return in the response.

Whereas the doc is clear about the necessity to raise a AuditUrlMismatchEventType, the doc is unclear on whether it is mandatory or not to specify a endpoint that strictly matches one of the exposed endpoint of the server.

Server can be addressed by hostname, fqdn , alias hostname and directly with IP address ...

For instance:

  • Prosys Demo Server will reject the connection if the endpointUrl provided in the createSessionRequest doesn't exactly match the endpointUrl of one of the exposed endpoint of the server with a ServiceFault BadServiceUnsupported.

  • UAAutomation CPPServer will accept the connection of the endpointUrl is opc.tcp://localhost:48010 our opc.tcp://192.122.122.14:48010 (with the server Ip address) or opc.tcp://HOSTNAME:48010 even though only opc.tcp://HOSTNAME:48010 appears in the endpoint descriptions.

Which behavior is correct ?

Also I am not sure that any CTT test verifies this aspect yet ...

If we decide that createSessionRequest must expose a known endpointUrl to the server. then we may have to provide the algorithm by which a client can reliably connect to the server if it only knows it IP address..:

  • open a connection using on one of the possible hostnaame/ipaddress , create a secureChannel
  • get the endpoints
  • close connection
  • find the exact end point matching the level of security required
    • open a new connection with the exact opc.tcp endpoint, create channel
  • create session with this exact endpoint URL
    • activate session , etc ...
TagsNo tags attached.
Commit Version
Fix Due Date

Relationships

related to 0006142 closedMatthias Damm 10000-004: Services [Part 4] endpointUrl in createSession document unclear 

Activities

Etienne Rossignon

2024-03-19 22:33

reporter   ~0020958

More over, some client may add a extra "/" at the end of the URI, and the server might not define endpoint with a trailing "/" causing issue for endpoint matching .

May be adding a clear of rules for endpoint uri matching would be appropriate.

Etienne Rossignon

2024-03-19 22:33

reporter   ~0020959

endpoint URI matching also affects PART 4 5.4.4

5.4.4 GetEndpoints 5.4.4.1 Description
A Client may reduce the number of results returned by specifying filter criteria based on LocaleIds and Transport Profile URIs. The Server returns an empty list if no Endpoints match the criteria specified by the client. The filter criteria supported by this Service are described in 5.4.4.2.

Jim Luth

2024-03-19 22:33

administrator   ~0020960

Agreed to deprecate the AuditUrlMismatchEventType and its required use in the Server.

Issue History

Date Modified Username Field Change
2024-03-19 22:33 Jim Luth New Issue
2024-03-19 22:33 Jim Luth Status new => assigned
2024-03-19 22:33 Jim Luth Assigned To => Jeff Harding
2024-03-19 22:33 Jim Luth Issue generated from: 0006142
2024-03-19 22:33 Jim Luth Note Added: 0020958
2024-03-19 22:33 Jim Luth Note Added: 0020959
2024-03-19 22:33 Jim Luth Note Added: 0020960
2024-03-19 22:33 Jim Luth Relationship added related to 0006142
2024-03-19 22:33 Jim Luth Project 10000-004: Services => 10000-005: Information Model