Hello Wolfgang,
access control is a new addition to open62541. You can find it on the master branch.
The API closely follows the OPC UA mechanisms. See the spec for comparison.
With this addition, the UserAccessLevel attribute is different for every user.
The value is not stored in the node, but provided by a callback mechanism to an access control layer.
We define a plugin API that does two things:
- Callback to userland to authenticate a session. There, user-defined data can be attached to every session.
- Callback to the access control plugin to allow operations for a session. The user-defined session data is forwarded to the plugin.
The access control plugin can only take away rights that are basically permitted for the node.
There is a default implementation that allows "everything".
Allowing "everything" in that context means returning a bitfield with
all ones. This is then XORed with the AccessLevel of the node.
https://github.com/open62541/open62541/blob/master/plugins/ua_accesscontrol_default.hYes, the services you mentioned are the right place to add this feature.
On master, it is already done in many places. But it is currently not verified to be complete.
Best regards,
Julius