Data Access Permissions

Introduction

To handle who can access what entity in the CoreOne Suite, we introduced data access permission handling.

Based on security filters we can configure access to all entities that are stored in the database.

There are different types of security filters to achieve a high grade in flexibility to build different use cases for entity-level access.

There are security filters that work on all entities and some that work only for specific types.

Entity Type

All possible types that advanced permission management can handle are stored in the security_entity_type table.

Entity Type Default Rights

Each entity type has default rights attached to it. In the security_entity_type table, you will find a property called default_security_rights. This property defines the default rights that will be applied to all users.

For example, the IResourceAssignment entity has a GenericNoAccessFilter defined, meaning no one has access to it by default. On the other hand, the ICoreIdentity entity has a GenericMyCoreIdentityFilter defined, meaning everyone is allowed to read their own Core Identity by default.

Security Mode

The security mode defines which actions are allowed on the entity where access is given. The available rights are:

  • Read

  • Write

  • Update

  • Delete

  • All

Current Limitations

If we combine view with data permissions we can achieve various advanced use cases. But there are some limitations to this.

Update Limitations

If you have an entity like let’s say a ICoreIdenity, this entity contains a list of defines IAttributeValues. With the data permission you can give users Read rights to all attribute values and only Update rights to certain attributes. On a data level this will work and will be checked by the Advanced Permission Handling. But there are two limitations.

Most of the UI interfaces can not handle the attribute permissions yet. This means, if you edit an ICoreIdentity you will be able to edit all attribute values, regardless of the actual permissions. If you click save, you will get an appropriate error message from the backend.

In some cases the business logic is not executed in the context of the user, but in the context of the system. In those cases the limitation of the UI will lead to a situation where the user actually can save data. So whenever you create a new security role and you would like to limit the edit of specific attributes keep this in mind and test it carefully. However if you configure the Updatable on the attribute itself, everything will work as expected.

Relations

If you give view permission for the Identity Detail page and grant data permissions to all identities, you might still not be able to load the appropriate view. Because the detail page displays more than just the entity, you might need to give access to certain relations. For example an IIdentity has many relations to the ITargetSystem, the IIdentityType, the IProvisioningConfiguration and so on. Depending on the view and the use case, you might need to give access to those relationships.

© ITSENSE AG. Alle Rechte vorbehalten. ITSENSE und CoreOne sind eingetragene Marken der ITSENSE AG.