View Issue Details

IDProjectCategoryView StatusLast Update
000614210000-004: ServicesApi Changepublic2024-03-19 22:36
ReporterEtienne Rossignon Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Fixed in Version1.05.04 RC1 
Summary0006142: [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 Version1.05.04 RC
Fix Due Date

Relationships

related to 0007253 assignedAlexander Allmendinger Compliance Test Tool (CTT) Unified Architecture [Part 4] endpointUrl in createSession document unclear 
related to 0009477 closedJeff Harding 10000-003: Address Space [Part 4] endpointUrl in createSession document unclear 
related to 0009478 assignedJeff Harding 10000-005: Information Model [Part 4] endpointUrl in createSession document unclear 

Activities

Etienne Rossignon

2020-12-01 15:28

reporter   ~0013325

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

2020-12-01 15:31

reporter   ~0013326

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:32

administrator   ~0020954

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

Matthias Damm

2024-03-19 22:34

developer   ~0020962

The EndpointUrl is for diagnostics only.

Table 15 – CreateSession Service Parameters
endpointUrl

Replaced description with
The network address that the Client used to access the Session Endpoint.
The Server uses this information for diagnostics and to determine what URLs to return in the response.
The Server should return a suitable default URL if it does not recognize the HostName in the URL.

Jim Luth

2024-03-19 22:36

administrator   ~0020963

Agreed to changes in Dallas F2F.

Issue History

Date Modified Username Field Change
2020-10-08 06:58 Etienne Rossignon New Issue
2020-12-01 15:28 Etienne Rossignon Note Added: 0013325
2020-12-01 15:31 Etienne Rossignon Note Added: 0013326
2021-04-14 16:42 Paul Hunkar Project UA => 10000-004: Services
2021-04-14 16:42 Paul Hunkar Category Documentation Errata => Api Change
2021-09-14 16:29 Jim Luth Assigned To => Matthias Damm
2021-09-14 16:29 Jim Luth Status new => assigned
2021-09-14 16:29 Jim Luth Issue cloned: 0007253
2021-09-14 16:29 Jim Luth Relationship added related to 0007253
2024-03-19 22:32 Jim Luth Note Added: 0020954
2024-03-19 22:32 Jim Luth Issue cloned: 0009477
2024-03-19 22:32 Jim Luth Relationship added related to 0009477
2024-03-19 22:33 Jim Luth Issue cloned: 0009478
2024-03-19 22:33 Jim Luth Relationship added related to 0009478
2024-03-19 22:34 Matthias Damm Status assigned => resolved
2024-03-19 22:34 Matthias Damm Resolution open => fixed
2024-03-19 22:34 Matthias Damm Fixed in Version => 1.05.04 RC1
2024-03-19 22:34 Matthias Damm Note Added: 0020962
2024-03-19 22:36 Jim Luth Status resolved => closed
2024-03-19 22:36 Jim Luth Commit Version => 1.05.04 RC
2024-03-19 22:36 Jim Luth Note Added: 0020963