In a web application which authenticates its users via an IdP using oauth2
, what are the more standard/recommended options for implementing user permissions (both client and server side)?
By "user permissions" I am referring to actions that the user is or isn't allowed to perform inside the application.
For example, let's say the application has an "admin" page which is used for managing some of the application's settings, that only specific users are allowed to enter. Some of these users are only allowed to view the current settings, while others are also permitted to change the settings (possibly only some of them).
From what I gather, the concept of "scopes" in oauth2 could probably be used for implementing such a requirement, so for example, a user that is only permitted to view the "admin" page would have a app:admin:view
scope, whereas a user who can also edit a setting would, in addition, have a app:admin:some-setting:edit
scope.
But, it seems that in most large identity provider services, the task of managing these scopes and their assignment to users would be quite a tedious one.
Would that be a good solution? If so, are there any products/services which integrate with oauth2 IdPs and help managing permissions and their assignment to users more easily (say, with a nice intuitive UI)? If not, are there any established methods handling such scenarios?