A technical asset represents a specific application, information system, or technological unit that requires its own access permissions to function and communicate with its environment (other applications and systems). By itself, it is not a specific account; rather, it is the owner and umbrella element for so-called technical accounts (service accounts).
Examples:
The primary reason for registering technical assets is to ensure that every technical account within the organization has a clearly defined owner and does not remain anonymous. Therefore, we define two key human roles for each technical asset:
Thanks to this Person → Technical Asset → Technical Accounts linkage, we can precisely audit at any time who is responsible for which technology and who manages its access rights, which is also crucial from a regulatory standpoint to ensure the organization's compliance with legislative requirements, such as the NIS2 Directive.
┌──────────────────┐ ┌────────────────┐
│ TechnicalAccount │◄─ ─ ─│ TechnicalAsset │
└──────────────────┘ └────────────────┘
│
│ ┌─────────────────────────┐
├─────►│ TechnicalAssetGuarantor │◄────────┐
│ └─────────────────────────┘ │ ┌─────────────┐
│ ├─────│ IdmIdentity │
│ ┌──────────────────────┐ │ └─────────────┘
├─────►│ TechnicalAssetHolder │◄───────────┘
│ └──────────────────────┘
│
│ ┌─────────────────────────────┐
├─────►│ TechnicalAssetGuarantorRole │◄────┐
│ └─────────────────────────────┘ │ ┌─────────┐
│ ├─────│ IdmRole │
│ ┌──────────────────────────┐ │ └─────────┘
└─────►│ TechnicalAssetHolderRole │◄───────┘
└──────────────────────────┘
The technical account has been extended with an optional attribute specifying which technical asset it belongs to. If a technical asset becomes disabled, the technical accounts belonging to it will become disabled as well. Note that this doesn't work in reverse - if a technical asset becomes enabled again, its technical accounts will stay disabled until set to enabled manually.
| Attribute | Type | Description |
|---|---|---|
| technicalAsset | UUID | optional attribute specifying which technical asset the technical account belongs to |
| Evaluator | Type | Description | Attributes |
|---|---|---|---|
| TechnicalAccountByTechnicalAssetGuarantorEvaluator | Regular | Returns technical accounts where the logged user is a guarantor of the parent technical asset - either directly by identity or indirectly by role. Technical accounts without an assigned technical asset are never matched by this evaluator. | No attributes |
| TechnicalAccountByTechnicalAssetHolderEvaluator | Regular | Returns technical accounts where the logged user is a holder of the parent technical asset - either directly by identity or indirectly by role. Technical accounts without an assigned technical asset are never matched by this evaluator. | No attributes |
| TechnicalAccountByTechnicalAssetTransitiveEvaluator | Transitive | Returns technical accounts where the logged user has access to the parent technical asset. Permissions are transitively derived from the technical asset the technical account belongs to. Technical accounts without an assigned technical asset are never matched by this evaluator. | Transfer permissions - a list of permissions to be transferred from a technical asset to its technical accounts; if the list is empty, all permissions held by the user for the given technical asset will be transferred to its technical accounts |
The overview of technical accounts can be accessed via the "Systems" and "Accounts" agendas in the main menu. The technical accounts in this agenda can be filtered by the technical asset they belong to, as well as by the rest of their properties.
When creating a technical account via the wizard, the first step allows you to select the technical asset to which the technical account belongs. By default, an administrator can create a technical account without selecting a technical asset, whereas all other users are required to fill it in. This behavior can be modified using two configuration properties:
idm.pub.tech.techAccountWizard.accountWithoutAssetForAdmin: Setting this to false enforces that even administrator must select a technical asset.idm.pub.tech.techAccountWizard.accountWithoutAssetRoles: By populating this property with role UUIDs (multiple UUIDs can be comma-separated), users with any of these roles assigned will be allowed to create technical accounts without specifying a technical asset.The primary entity representing a technical asset that can contain multiple technical accounts.
| Attribute | Type | Description |
|---|---|---|
| id | UUID | primary identifier |
| code | String | unique business identifier of the asset |
| name | String | asset name |
| description | String | asset description |
| disabled | Boolean | flag indicating whether the asset is disabled |
| pam | Boolean | flag indicating whether the asset is managed under Privileged Access Management (PAM) |
| zone | String | security zone the asset belongs to; constrains the zone of linked technical (Acc)Accounts |
| externalId | String | identifier assigned by an external system for integration purposes |
| externalCode | String | code from an external system |
| validFrom | LocalDate | validity start date |
| validTill | LocalDate | validity end date |
| Permission | Description |
|---|---|
| ADMIN | all permissions |
| COUNT | permission to retrieve the count of entities |
| AUTOCOMPLETE | permission to display the entity in autocomplete suggestions |
| READ | permission to read the entity |
| CREATE | permission to create the entity |
| UPDATE | permission to edit entity attributes |
| DELETE | permission to delete the entity |
| SETTOTECHNICALACCOUNT | permission to assign a technical account to the given Technical Asset |
| Evaluator | Type | Description | Attributes |
|---|---|---|---|
| TechnicalAssetByGuarantorEvaluator | Regular | Returns technical assets where the logged user is a guarantor - either directly by identity or indirectly by role. | No attributes |
| TechnicalAssetByHolderEvaluator | Regular | Returns technical assets where the logged user is a holder - either directly by identity or indirectly by role. | No attributes |
The zone attribute represents a security zone. It can be set on a
TechnicalAsset and on an AccAccount (the target-system account owned by a
technical account). When an asset declares a zone, IdM enforces that every
account reachable from that asset carries the same zone. This prevents a
technical account that belongs to a zoned asset from being provisioned into a
differently zoned account.
The relation is: TechnicalAsset ← TechnicalAccount ← TechnicalAccountAccount → AccAccount.
The zone declared on the asset is compared against the zone of the linked
AccAccount.
| Asset zone | Account zone | Result |
|---|---|---|
| not set (empty) | anything (including empty) | allowed - no constraint |
| set | equal to asset zone | allowed |
| set | different from asset zone | rejected |
| set | not set (empty) | rejected |
When the rule is violated, the operation is rejected with a
ResultCodeException using result code TECH_ASSET_ZONE_MISMATCH:
Technical asset zone [zoneA] does not match zone [zoneB] on account [account-uid].
zone value is not changed by the save operation, the check is
skipped - unrelated updates of an asset, technical account or account are not
blocked even if a (pre-existing) mismatch exists.
The tier attribute on AccAccount is an informational, free-form value. It is
not validated against the asset and imposes no constraint - it is used for
classification and table display only.
Represents direct assignment of an identity as guarantor for a technical asset.
| Attribute | Type | Description |
|---|---|---|
| id | UUID | primary identifier |
| externalId | String | identifier assigned by an external system for integration purposes |
| technicalAsset | UUID | id of the technical asset to be guaranted |
| guarantor | UUID | id of the user to be guarantor |
| Permission | Description |
|---|---|
| ADMIN | all permissions |
| COUNT | permission to retrieve the count of entities |
| AUTOCOMPLETE | permission to display the entity in autocomplete suggestions |
| READ | permission to read the entity |
| CREATE | permission to create the entity |
| UPDATE | permission to edit entity attributes |
| DELETE | permission to delete the entity |
| Evaluator | Type | Description | Attributes |
|---|---|---|---|
| TechnicalAssetGuarantorByTechnicalAssetGuarantorEvaluator | Regular | Returns technical asset guarantors where the logged user is a guarantor of that technical asset - either directly by identity or indirectly by role. | No attributes |
| TechnicalAssetGuarantorByTechnicalAssetHolderEvaluator | Regular | Returns technical asset guarantors where the logged user is a holder of that technical asset - either directly by identity or indirectly by role. | No attributes |
| TechnicalAssetGuarantorByTechnicalAssetTransitiveEvaluator | Transitive | Returns technical asset guarantors where the logged user has access to the parent technical asset. Permissions are transitively derived from the technical asset the technical asset guarantor belongs to. | Transfer permissions - a list of permissions to be transferred from a technical asset to its guarantors; if the list is empty, all permissions held by the user for the given technical asset will be transferred to its guarantors |
Represents the assignment of a role to a technical asset, where granting this role to a user designates them as a guarantor of that asset
| Attribute | Type | Description |
|---|---|---|
| id | UUID | primary identifier |
| externalId | String | identifier assigned by an external system for integration purposes |
| technicalAsset | UUID | id of the technical asset to be guaranted |
| role | UUID | id of the role which, when assigned to a user, makes them a guarantor |
| Permission | Description |
|---|---|
| ADMIN | all permissions |
| COUNT | permission to retrieve the count of entities |
| AUTOCOMPLETE | permission to display the entity in autocomplete suggestions |
| READ | permission to read the entity |
| CREATE | permission to create the entity |
| UPDATE | permission to edit entity attributes |
| DELETE | permission to delete the entity |
| Evaluator | Type | Description | Attributes |
|---|---|---|---|
| TechnicalAssetGuarantorRoleByTechnicalAssetGuarantorEvaluator | Regular | Returns technical asset guarantor roles where the logged user is a guarantor of that technical asset - either directly by identity or indirectly by role. | No attributes |
| TechnicalAssetGuarantorRoleByTechnicalAssetHolderEvaluator | Regular | Returns technical asset guarantor roles where the logged user is a holder of that technical asset - either directly by identity or indirectly by role. | No attributes |
| TechnicalAssetGuarantorRoleByTechnicalAssetTransitiveEvaluator | Transitive | Returns technical asset guarantor roles where the logged user has access to the parent technical asset. Permissions are transitively derived from the technical asset the technical asset guarantor role belongs to. | Transfer permissions - a list of permissions to be transferred from a technical asset to its guarantor roles; if the list is empty, all permissions held by the user for the given technical asset will be transferred to its guarantor roles |
Represents direct assignment of an identity as holder for a technical asset.
| Attribute | Type | Description |
|---|---|---|
| id | UUID | primary identifier |
| externalId | String | identifier assigned by an external system for integration purposes |
| technicalAsset | UUID | id of the technical asset to be managed |
| holder | UUID | id of the user to be holder |
| Permission | Description |
|---|---|
| ADMIN | all permissions |
| COUNT | permission to retrieve the count of entities |
| AUTOCOMPLETE | permission to display the entity in autocomplete suggestions |
| READ | permission to read the entity |
| CREATE | permission to create the entity |
| UPDATE | permission to edit entity attributes |
| DELETE | permission to delete the entity |
| Evaluator | Type | Description | Attributes |
|---|---|---|---|
| TechnicalAssetHolderByTechnicalAssetGuarantorEvaluator | Regular | Returns technical asset holders where the logged user is a guarantor of that technical asset - either directly by identity or indirectly by role. | No attributes |
| TechnicalAssetHolderByTechnicalAssetHolderEvaluator | Regular | Returns technical asset holders where the logged user is a holder of that technical asset - either directly by identity or indirectly by role. | No attributes |
| TechnicalAssetHolderByTechnicalAssetTransitiveEvaluator | Transitive | Returns technical asset holders where the logged user has access to the parent technical asset. Permissions are transitively derived from the technical asset the technical asset holder belongs to. | Transfer permissions - a list of permissions to be transferred from a technical asset to its holders; if the list is empty, all permissions held by the user for the given technical asset will be transferred to its holders |
Represents the assignment of a role to a technical asset, where granting this role to a user designates them as a holder of that asset
| Attribute | Type | Description |
|---|---|---|
| id | UUID | primary identifier |
| externalId | String | identifier assigned by an external system for integration purposes |
| technicalAsset | UUID | id of the technical asset to be guaranted |
| role | UUID | id of the role which, when assigned to a user, makes them a holder |
| Permission | Description |
|---|---|
| ADMIN | all permissions |
| COUNT | permission to retrieve the count of entities |
| AUTOCOMPLETE | permission to display the entity in autocomplete suggestions |
| READ | permission to read the entity |
| CREATE | permission to create the entity |
| UPDATE | permission to edit entity attributes |
| DELETE | permission to delete the entity |
| Evaluator | Type | Description | Attributes |
|---|---|---|---|
| TechnicalAssetHolderRoleByTechnicalAssetGuarantorEvaluator | Regular | Returns technical asset holder roles where the logged user is a guarantor of that technical asset - either directly by identity or indirectly by role. | No attributes |
| TechnicalAssetHolderRoleByTechnicalAssetHolderEvaluator | Regular | Returns technical asset holder roles where the logged user is a holder of that technical asset - either directly by identity or indirectly by role. | No attributes |
| TechnicalAssetHolderRoleByTechnicalAssetTransitiveEvaluator | Transitive | Returns technical asset holder roles where the logged user has access to the parent technical asset. Permissions are transitively derived from the technical asset the technical asset holder role belongs to. | Transfer permissions - a list of permissions to be transferred from a technical asset to its holder roles; if the list is empty, all permissions held by the user for the given technical asset will be transferred to its holder roles |
The overview of technical assets can be accessed via the "Technical assets" agenda in the main menu.
| Column | Description |
| Code | Unique business identifier of the technical asset |
| Name | Name of the technical asset, can be duplicit |
| Description | Description of the technical asset |
| Guarantors | Guarantors of the technical asset, including those listed directly and those who are guarantors via an assigned guarantor role. To prevent overcrowding, the list is truncated to 5 identities. |
| Holders | Holders of the technical asset, including those listed directly and those who are holders via an assigned holder role. To prevent overcrowding, the list is truncated to 5 identities. |
| Valid from | Start date of the technical asset's validity |
| Valid till | End date of the technical asset's validity |
| Inactive | Flag indicating that the technical asset is inactive |
| PAM | Flag indicating whether the asset is managed under Privileged Access Management (PAM) |
The set and order of rendered columns in the technical asset table can be
configured via the public configuration property
idm.pub.app.show.technicalAsset.table.columns. Comma is used as a separator;
the order of the rendered columns is preserved as configured.
# Rendered columns in the technical asset table agenda. Comma is used as separator. # Order of rendered columns is preserved as configured. # Available columns: # - code - unique business identifier of the asset # - name - asset name # - description - asset description # - guarantors - direct and role-based guarantors (truncated to 5) # - holders - direct and role-based holders (truncated to 5) # - validFrom - validity start date # - validTill - validity end date # - disabled - inactive flag # - pam - PAM flag (hidden by default - add explicitly to show it) idm.pub.app.show.technicalAsset.table.columns=code, name, description, guarantors, holders, validFrom, validTill, disabled
pam column is not rendered by default. To display it, include
pam in the configured value, e.g.
idm.pub.app.show.technicalAsset.table.columns=code, name, pam, disabled.
| Filter | Description |
| Name or description | Enables full-text search within the name and description of the technical asset |
| Code | Enables searching by the technical asset code; an exact match is required |
| Valid from | Enables searching for technical assets with a specific validity start date |
| Valid till | Enables searching for technical assets with a specific validity end date |
| Guarantor | Enables searching for technical assets by guarantor (either direct or via a role) |
| Holder | Enables searching for technical assets by holder (either direct or via a role) |
| Inactive | Enables searching only for active or only for inactive technical assets |
| Zone | Enables searching for technical assets by security zone |
| PAM | Enables searching only for assets managed under PAM, or only for those that are not |
| Bulk action | Description | Required permission |
| Report | Basic export of technical assets | always available |
| Delete technical asset | Allows deletion of technical assets, including subordinate entities (direct guarantors/holders and those via role). If the technical asset is assigned to technical accounts, this association is deleted. | Delete |
After clicking on the magnifying glass icon or the name of a technical asset in the technical asset table, the detail view of the given technical asset is displayed, with "Basic information" as the default sub-agenda. If the user has the Update permission for a technical asset, they can edit the fields.
To deactivate/activate a technical asset, the user needs the UPDATE permission. Otherwise the respective button won't be displayed.
| Field | Description |
|---|---|
| Code | Unique business identifier of the technical asset |
| Name | Name of the technical asset, Can be duplicit |
| Description | Description of the technical asset |
| Valid from | Start date of the technical asset's validity |
| Valid till | End date of the technical asset's validity |
| Inactive | Flag indicating that the technical asset is inactive |
| PAM | Flag indicating whether the asset is managed under Privileged Access Management (PAM) |
| Zone | Security zone the asset belongs to; constrains the zone of linked technical accounts (see Zone validation) |
The "Technical accounts" sub-agenda contains an overview of all technical accounts under the given technical asset.
| Column | Description |
| Account identifier | Account identifier on the system |
| System name | Name of the system to which the technical account provides access |
| Account guarantors | Guarantors of the technical account, including those listed directly and those who are guarantors via an assigned guarantor role |
| Valid from | Start date of the technical account's validity |
| Valid till | End date of the technical account's validity |
| Is protected from delete | Flag indicating that the technical account is protected from deletion (it is in quarantine) |
| Protected untill | Date until which the technical account is protected from deletion (when the quarantine expires and the account will be deleted) |
| Filter | Description |
|---|---|
| Account identifier | Enables searching by technical account name; an exact match is required |
| System | Enables searching by the name of the system to which the technical account provides access. |
| Technical account type | Enables searching by system mapping |
| Account guarantor | Enables searching for technical accounts by guarantor (either direct or via a role) |
| Valid from | Enables searching for technical accounts with a specific validity start date |
| Valid till | Enables searching for technical accounts with a specific validity end date |
| Protected from deletion | Enables searching only for technical accounts that are in quarantine, or only for those that are not |
| Bulk action | Description | Required permissions |
|---|---|---|
| Report | Basic export of technical accounts | always available |
This sub-agenda allows you to manage the direct guarantors of the technical asset, as well as guarantor roles, the assignment of which makes a user a guarantor.
This sub-agenda allows you to manage the direct holders of the technical asset, as well as holder roles, the assignment of which makes a user a holder.
This sub-agenda displays the audit log for the technical asset and its related entities.
| Column | Description |
|---|---|
| Entity type | Type of entity upon which the action was performed |
| Entity (IdM) | Entity upon which the action was performed |
| Sub owner code | Code of the secondary related entity |
| Action | Type of performed action |
| Executed by | Username of the user who performed the action |
| Date of revision | Date and time when the action was performed |
| Changed attributes | List of attributes changed during the action |
| Filter | Descriptin |
|---|---|
| Date | Enables searching for actions performed within a specific period |
| Entity type | Enables searching by the type of entity upon which the action was performed. |
| Executed by | Enables searching by the username of the user who performed the action; an exact match is required |
| Own group search by changed attributes | Enables searching for actions during which the given list of attributes was changed |
The audit table has no bulk actions.
To simplify permission setup, the techAssetGuarantorRole and techAssetHolderRole roles have been created, which grant permissions to guarantors and holders of technical roles. These roles can either be nested under userRole or assigned directly to selected users. Default permission settings:
| Feature | In guarantor role | In holder role |
| Read my technical assets | Yes | Yes |
| Edit my technical assets | Yes | No |
| Assign my technical assets to technical accounts | No | Yes |
| Read my technical asset guarantors - direct | Yes | Yes |
| Manage my technical asset guarantors - direct | Yes | No |
| Read my technical asset guarantors - by role | Yes | Yes |
| Manage my technical asset guarantors - by role | Yes | No |
| Read my technical asset holders - direct | Yes | Yes |
| Manage my technical asset holders - direct | Yes | No |
| Read my technical asset holders - by role | Yes | Yes |
| Manage my technical asset holders - by role | Yes | No |
| Read technical accounts under my technical assets | Yes | Yes |
| Edit technical accounts under my technical assets | No | Yes |
| Edit accounts on system related to technical accounts under my technical assets | No | Yes |
| Read roles assigned to technical accounts under my technical assets | Yes | Yes |
| Read role requests for technical accounts under my technical assets | Yes | Yes |
| Create role requests for technical accounts under my technical assets | No | Yes |