Technical Account Module - Technical Assets

Overview

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:

  • An integration platform (e.g., the IdM itself) needs to access various systems (AD, HR system, SAP, etc.).
  • An HR portal needs to access AD to check which employees are active, and the payroll system to check remaining vacation balances.
  • A monitoring tool requires access to the monitored systems.

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:

  • Technical Asset Guarantor: A person from the business or management side who bears overall functional and compliance responsibility for the given asset. The Guarantor approves permissions for individual technical accounts under the given technical asset.
  • Technical Asset Holder: A technical specialist who actually works with asset accounts in practice. In the IdM, the Holder securely retrieves passwords, configures them on target systems, and creates requests for roles that grant the permissions the technical account requires for its intended use.

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.

Purpose

  • Centralize management of technical accounts under logical asset groupings
  • Enable role-based access control for asset-related operations
  • Provide audit capabilities for compliance requirements
  • Support notifications via NOTIFY event

Entities

┌──────────────────┐      ┌────────────────┐
│ 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.

AttributeTypeDescription
technicalAssetUUIDoptional attribute specifying which technical asset the technical account belongs to
EvaluatorTypeDescriptionAttributes
TechnicalAccountByTechnicalAssetGuarantorEvaluatorRegularReturns 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
TechnicalAccountByTechnicalAssetHolderEvaluatorRegularReturns 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
TechnicalAccountByTechnicalAssetTransitiveEvaluatorTransitiveReturns 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:

  1. idm.pub.tech.techAccountWizard.accountWithoutAssetForAdmin: Setting this to false enforces that even administrator must select a technical asset.
  2. 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.

AttributeTypeDescription
idUUIDprimary identifier
codeStringunique business identifier of the asset
nameStringasset name
descriptionStringasset description
disabledBooleanflag indicating whether the asset is disabled
pamBooleanflag indicating whether the asset is managed under Privileged Access Management (PAM)
zoneStringsecurity zone the asset belongs to; constrains the zone of linked technical (Acc)Accounts
externalIdStringidentifier assigned by an external system for integration purposes
externalCodeStringcode from an external system
validFromLocalDatevalidity start date
validTillLocalDatevalidity 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
EvaluatorTypeDescriptionAttributes
TechnicalAssetByGuarantorEvaluatorRegularReturns technical assets where the logged user is a guarantor - either directly by identity or indirectly by role.No attributes
TechnicalAssetByHolderEvaluatorRegularReturns 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: TechnicalAssetTechnicalAccountTechnicalAccountAccountAccAccount. The zone declared on the asset is compared against the zone of the linked AccAccount.

Validation rule

Asset zoneAccount zoneResult
not set (empty)anything (including empty)allowed - no constraint
setequal to asset zoneallowed
setdifferent from asset zonerejected
setnot set (empty)rejected
An asset without a zone imposes no constraint - accounts linked to it may have any zone or none.

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].
If the 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.

Relation to tier

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.

The zone check is enforced on every save of the involved entities, not only through the wizard or import. Bulk operations and the CSV import are subject to the same validation - a row violating the zone rule will fail while the rest of the batch continues.

Represents direct assignment of an identity as guarantor for a technical asset.

AttributeTypeDescription
idUUIDprimary identifier
externalIdStringidentifier assigned by an external system for integration purposes
technicalAssetUUIDid of the technical asset to be guaranted
guarantorUUIDid of the user to be guarantor
PermissionDescription
ADMINall permissions
COUNTpermission to retrieve the count of entities
AUTOCOMPLETEpermission to display the entity in autocomplete suggestions
READpermission to read the entity
CREATEpermission to create the entity
UPDATEpermission to edit entity attributes
DELETEpermission to delete the entity
EvaluatorTypeDescriptionAttributes
TechnicalAssetGuarantorByTechnicalAssetGuarantorEvaluatorRegularReturns technical asset guarantors where the logged user is a guarantor of that technical asset - either directly by identity or indirectly by role.No attributes
TechnicalAssetGuarantorByTechnicalAssetHolderEvaluatorRegularReturns technical asset guarantors where the logged user is a holder of that technical asset - either directly by identity or indirectly by role.No attributes
TechnicalAssetGuarantorByTechnicalAssetTransitiveEvaluatorTransitiveReturns 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

AttributeTypeDescription
idUUIDprimary identifier
externalIdStringidentifier assigned by an external system for integration purposes
technicalAssetUUIDid of the technical asset to be guaranted
roleUUIDid of the role which, when assigned to a user, makes them a guarantor
PermissionDescription
ADMINall permissions
COUNTpermission to retrieve the count of entities
AUTOCOMPLETEpermission to display the entity in autocomplete suggestions
READpermission to read the entity
CREATEpermission to create the entity
UPDATEpermission to edit entity attributes
DELETEpermission to delete the entity
EvaluatorTypeDescriptionAttributes
TechnicalAssetGuarantorRoleByTechnicalAssetGuarantorEvaluatorRegularReturns 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
TechnicalAssetGuarantorRoleByTechnicalAssetHolderEvaluatorRegularReturns 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
TechnicalAssetGuarantorRoleByTechnicalAssetTransitiveEvaluatorTransitiveReturns 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.

AttributeTypeDescription
idUUIDprimary identifier
externalIdStringidentifier assigned by an external system for integration purposes
technicalAssetUUIDid of the technical asset to be managed
holderUUIDid of the user to be holder
PermissionDescription
ADMINall permissions
COUNTpermission to retrieve the count of entities
AUTOCOMPLETEpermission to display the entity in autocomplete suggestions
READpermission to read the entity
CREATEpermission to create the entity
UPDATEpermission to edit entity attributes
DELETEpermission to delete the entity
EvaluatorTypeDescriptionAttributes
TechnicalAssetHolderByTechnicalAssetGuarantorEvaluatorRegularReturns technical asset holders where the logged user is a guarantor of that technical asset - either directly by identity or indirectly by role.No attributes
TechnicalAssetHolderByTechnicalAssetHolderEvaluatorRegularReturns technical asset holders where the logged user is a holder of that technical asset - either directly by identity or indirectly by role.No attributes
TechnicalAssetHolderByTechnicalAssetTransitiveEvaluatorTransitiveReturns 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

AttributeTypeDescription
idUUIDprimary identifier
externalIdStringidentifier assigned by an external system for integration purposes
technicalAssetUUIDid of the technical asset to be guaranted
roleUUIDid of the role which, when assigned to a user, makes them a holder
PermissionDescription
ADMINall permissions
COUNTpermission to retrieve the count of entities
AUTOCOMPLETEpermission to display the entity in autocomplete suggestions
READpermission to read the entity
CREATEpermission to create the entity
UPDATEpermission to edit entity attributes
DELETEpermission to delete the entity
EvaluatorTypeDescriptionAttributes
TechnicalAssetHolderRoleByTechnicalAssetGuarantorEvaluatorRegularReturns 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
TechnicalAssetHolderRoleByTechnicalAssetHolderEvaluatorRegularReturns 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
TechnicalAssetHolderRoleByTechnicalAssetTransitiveEvaluatorTransitiveReturns 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
CodeUnique business identifier of the technical asset
NameName of the technical asset, can be duplicit
DescriptionDescription of the technical asset
GuarantorsGuarantors 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.
HoldersHolders 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 fromStart date of the technical asset's validity
Valid tillEnd date of the technical asset's validity
InactiveFlag indicating that the technical asset is inactive
PAMFlag indicating whether the asset is managed under Privileged Access Management (PAM)

Configurable columns

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
The 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 descriptionEnables full-text search within the name and description of the technical asset
CodeEnables searching by the technical asset code; an exact match is required
Valid fromEnables searching for technical assets with a specific validity start date
Valid tillEnables searching for technical assets with a specific validity end date
GuarantorEnables searching for technical assets by guarantor (either direct or via a role)
HolderEnables searching for technical assets by holder (either direct or via a role)
InactiveEnables searching only for active or only for inactive technical assets
ZoneEnables searching for technical assets by security zone
PAMEnables searching only for assets managed under PAM, or only for those that are not
Bulk action Description Required permission
ReportBasic export of technical assetsalways available
Delete technical assetAllows 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
If you want to delete technical accounts assigned to a specific Technical Asset, you need to do it manually. Deleting is a destructive operation, that also results in deleting the accounts on end systems, so IdM is not doing it automatically.

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.

FieldDescription
CodeUnique business identifier of the technical asset
NameName of the technical asset, Can be duplicit
DescriptionDescription of the technical asset
Valid fromStart date of the technical asset's validity
Valid tillEnd date of the technical asset's validity
InactiveFlag indicating that the technical asset is inactive
PAMFlag indicating whether the asset is managed under Privileged Access Management (PAM)
ZoneSecurity 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 identifierAccount identifier on the system
System nameName of the system to which the technical account provides access
Account guarantorsGuarantors of the technical account, including those listed directly and those who are guarantors via an assigned guarantor role
Valid fromStart date of the technical account's validity
Valid tillEnd date of the technical account's validity
Is protected from deleteFlag indicating that the technical account is protected from deletion (it is in quarantine)
Protected untillDate until which the technical account is protected from deletion (when the quarantine expires and the account will be deleted)
FilterDescription
Account identifierEnables searching by technical account name; an exact match is required
SystemEnables searching by the name of the system to which the technical account provides access.
Technical account typeEnables searching by system mapping
Account guarantorEnables searching for technical accounts by guarantor (either direct or via a role)
Valid fromEnables searching for technical accounts with a specific validity start date
Valid tillEnables searching for technical accounts with a specific validity end date
Protected from deletionEnables searching only for technical accounts that are in quarantine, or only for those that are not
Bulk actionDescriptionRequired permissions
ReportBasic export of technical accountsalways 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.

ColumnDescription
Entity typeType of entity upon which the action was performed
Entity (IdM)Entity upon which the action was performed
Sub owner codeCode of the secondary related entity
ActionType of performed action
Executed byUsername of the user who performed the action
Date of revisionDate and time when the action was performed
Changed attributesList of attributes changed during the action
FilterDescriptin
DateEnables searching for actions performed within a specific period
Entity typeEnables searching by the type of entity upon which the action was performed.
Executed byEnables searching by the username of the user who performed the action; an exact match is required
Own group search by changed attributesEnables 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 assetsYesYes
Edit my technical assetsYesNo
Assign my technical assets to technical accountsNoYes
Read my technical asset guarantors - directYesYes
Manage my technical asset guarantors - directYesNo
Read my technical asset guarantors - by roleYesYes
Manage my technical asset guarantors - by roleYesNo
Read my technical asset holders - directYesYes
Manage my technical asset holders - directYesNo
Read my technical asset holders - by roleYesYes
Manage my technical asset holders - by roleYesNo
Read technical accounts under my technical assetsYesYes
Edit technical accounts under my technical assetsNoYes
Edit accounts on system related to technical accounts under my technical assetsNoYes
Read roles assigned to technical accounts under my technical assetsYesYes
Read role requests for technical accounts under my technical assetsYesYes
Create role requests for technical accounts under my technical assetsNoYes
  • by otmara