Roles and Permissions
Roles are business units that contain one or more permissions and can be assigned to CLM users or API clients. For example, a role can be configured to contain the permissions required for a specific operation, such as certificate creation or revocation for a policy.
The role CLM_ADMIN
, which contains the ADMIN
global permission, is always present in MTG CLM.
Creating Roles
Roles can be created through the MTG CLM interface to define specific permission sets for different user types and operational requirements.
Permissions System
MTG CLM uses a fine-granular permissions system,
where a RA Operator (user or API Client) can receive individual permissions for specific operations (such as READ
/UPDATE
/DELETE
) for specific resources (such as realms, policies, end entities, certificate requests, certificates).
Permission Scenarios
Scenario | Outcome | Extras |
---|---|---|
RA Operator has PolicyPermissions |
Also has permissions to read the policy and any belonging certificates |
Cannot modify or delete the policy (requires additional permissions) |
Automatic Permission Assignment
Whenever a RA Operator creates a new resource, the application ensures that they receive at least a set of permissions on it, so that they are able to see and use it:
For a realm: [FULL_READ, UPDATE, DELETE, ENDENTITIES_CREATE, POLICIES_CREATE]
For a policy: [READ, UPDATE, DELETE, CERTS_CREATE]
For an end entity: [READ, UPDATE, DELETE]
For a certificate request: [READ]
For a certificate: [READ, REVOKE]
Implicit Permissions
In addition to any explicit permissions, users and API clients always have implicit READ
and partial UPDATE
permissions to themselves,
in order to allow for functionality (such as updating an e-mail address or resetting a forgotten password).
For more information regarding the different groups of permissions refer to API Permissions.
System Notes and Limitations
Role Management
-
Roles are stored and managed in Keycloak application.
-
The default
CLM_ADMIN
role cannot be edited or deleted using MTG CLM. -
CLM_ADMIN
role can still be deleted using Keycloak UI - this is advised against. -
If the
CLM_ADMIN
role gets deleted in Keycloak, you may create a role with the nameCLM_ADMIN
using Keycloak UI.
Role Behavior
-
Renaming a role in Keycloak will result in MTG CLM perceiving it as deleted.
-
The renamed role can be viewed in MTG CLM, but no permission will be associated with it.
-
On startup, along with
CLM_ADMIN
, a roleKC_ADMIN
is created, which can be assigned to a Keycloak user that needsADMIN
access to it. -
Any default realm role can be edited and deleted like any other role.
Default Realm Roles
-
Realms created before default realm roles were introduced get assigned roles on startup via migration scripts, except from realm
SYSTEM
. -
Since
SYSTEM
realm is not meant to be used with API clients, which is the sole use case for default realm roles, this is the only realm that does not get assigned a default role.