eclipse-opendut / opendut

Test Electronic Control Units around the world in a transparent network.
https://opendut.eclipse.dev
Apache License 2.0
25 stars 15 forks source link

Authorization / Permission Model for openDuT #297

Open mirenz1 opened 2 months ago

mirenz1 commented 2 months ago

A permission and role model shall be introduced to openDuT in order to manage authorizations for different resources used in openDuT.

Role description

1 basic_role

1 user_role per peer

1 owner_role per peer

1 admin_role

Permission - Role matrix

Permission BASIC USER OWNER ADMIN
create new peers x x
edit peers po po x
add devices to peers po po x
remove devices from peers po po x
configure execution container for peer po po x
create setup string for peer po po x
delete peers po po x
view peer configuration x x x x
--- --- --- --- ---
create new cluster po po x
edit cluster name po po x
add devices of peers to cluster po po x
remove devices from cluster po po x
define lead peer for cluster po po x
delete cluster po po x
view cluster configuration x x x x
--- --- --- --- ---
deploy cluster po po x
undeploy cluster po po x
--- --- --- --- ---
add/remove other users as USER of peer po x

Legend: x ... general permission granted po ... peer only, peer specific role grants permission only for the specific peer

Discussion

References

Relates to #290

hafklin commented 2 months ago

This looks like a pretty solid approach to me! To me it also seems like this won't overly complicate extending the permission model to the file storage functionality (which is currently still the crude WebDAV server).