View Issue Details

IDProjectCategoryView StatusLast Update
000665610000-014: PubSubSpecpublic2021-06-07 17:07
ReporterMatthias Damm Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Summary0006656: AddSecurityGroup requires clarification
Description

The AddSecurityGroup has different parameters.

Parameters SecurityPolicyUri or SecurityGroupName can be rejected if SecurityPolicyUri does not have a valid value or if the name already exists.
We have a result code for a duplicate name.
We should define BadInvalidArgument for invalid SecurityPolicy.

Parameters KeyLifetime, MaxFutureKeyCount and MaxPastKeyCount may exceed limits defined by the server.
In this case we should adjust them without error.
We should indicate that the client should read back the revised values.

TagsNo tags attached.
Commit Version
Fix Due Date

Activities

Zbynek Zahradnik

2021-03-18 10:14

developer   ~0014042

After considering more scenarios, I would rather do a bigger change and somehow extend the specification so that any SecurityPolicyUri can be set, but there will be a way to figure out whether the server (SKS) supports it or not, by a new method or read-only variable or something alike.

This is because, in fact, there is no "invalid" SecurityPolicyUri (maybe except for URI syntax errors). There are just SecurityPoliyUri-s that are just not currently supported by a particular server (SKS).
Even though we do not expect many PubSub security policies to ever exist, in general there may be more added in the future. And you need to consider practical scenarios like exchanging PubSub configuration files, and what happens if the file is loaded into a SKS but contains, at that moment, a SecurityPolicyUri that is not supported by the SKS currently.

An empty security policy URI (which I happened to use by mistake) might indicate that the SKS is free to use its default (which is what UaAutomation SKS prototype did) - but of course, the information returned GetSecurityKeys should contain the concrete security policy URI actually used, so that the consumers know which policy the security keys correspond to.

I am fine with the server adjusting the other parameters, and the reading back suggestion.

Matthias Damm

2021-03-30 14:29

developer   ~0014121

Added in OPC 10000-14 - UA Specification Part 14 - PubSub 1.05.0 Draft32.docx

8.7 SecurityGroupFolderType

Added new property:

HasProperty
Variable
SupportedSecurityPolicyUris
String[]
PropertyType
Optional

The SupportedSecurityPolicyUris Property contains a String array with the SecurityPolicyUris supported by the SKS. The Property shall be provided at the root SecurityGroupFolder.

8.8 AddSecurityGroup Method

Added clarifications to argument descriptions:
KeyLifetime
The lifetime of a key in milliseconds.
If the requested value exceeds the limits defined by the SKS, the value is adjusted by the SKS. The caller can get the revised value by reading the KeyLifetime of the created SecurityGroup.
SecurityPolicyUri
The SecurityPolicy used for the SecurityGroup. If a null or empty Sting is passed in, the SKS sets the default SecurityPolicyUri. If the SecurityPolicyUri is not known to the SKS, Bad_InvalidArgument shall be returned.
MaxFutureKeyCount
The maximum number of future keys returned by the Method GetSecurityKeys.
If the requested value exceeds the limits defined by the SKS, the value is adjusted by the SKS. The caller can get the revised value by reading the MaxFutureKeyCount of the created SecurityGroup.
MaxPastKeyCount
The maximum number of historical keys stored by the SKS.
If the requested value exceeds the limits defined by the SKS, the value is adjusted by the SKS. The caller can get the revised value by reading the MaxPastKeyCount of the created SecurityGroup.

Added to method result codes:
Bad_InvalidArgument
The SecurityPolicyUri is not supported by the SKS.

Jim Luth

2021-03-30 15:43

administrator   ~0014132

Agreed to text edited in telecon.
Needs 1.04 Errata to close.

Jim Luth

2021-06-07 17:07

administrator   ~0014483

Agreed to 1.04 Errata edited in Virtual F2F.

Issue History

Date Modified Username Field Change
2021-03-17 13:28 Matthias Damm New Issue
2021-03-17 13:28 Matthias Damm Status new => assigned
2021-03-17 13:28 Matthias Damm Assigned To => Matthias Damm
2021-03-18 10:14 Zbynek Zahradnik Note Added: 0014042
2021-03-30 14:29 Matthias Damm Status assigned => resolved
2021-03-30 14:29 Matthias Damm Resolution open => fixed
2021-03-30 14:29 Matthias Damm Note Added: 0014121
2021-03-30 15:43 Jim Luth Note Added: 0014132
2021-06-07 17:07 Jim Luth Status resolved => closed
2021-06-07 17:07 Jim Luth Fixed in Version => 1.05
2021-06-07 17:07 Jim Luth Note Added: 0014483