Table of Contents

, , , , , , , ,

Modules - Privileged Accounts Management [pam]

This is a paid module, contact your sales representative for purchase information.

Introduction

The Privileged Accounts Management (PAM) module integrates IdStory IdM with CyberArk and manages the lifecycle and passwords of privileged secondary personal accounts. It builds on the standard acc (accounts and provisioning) module and reacts to account and provisioning events - it does not expose its own REST agenda.

Core responsibilities:

Version

Module version Compatible with IdStory IdM Notes
15.1.3-SNAPSHOT 15.9.0 Current development version

The module is built against the idm-parent / IdStory IdM version listed above. It depends on the idm-acc and idm-core modules.

Key concepts

Getting Started

FIXME Add a step-by-step walkthrough (with screenshots) for a first setup: flag the identity as PAM, prepare the CyberArk system and connected systems, and create the first secondary personal account.

Prerequisites at a glance:

Configuration

Installation

FIXME Describe module deployment for the target installation (backend jar into the IdM, frontend module into the FE build).

CyberArk systems

These properties define which systems are CyberArk systems, their processing order, and which systems are connected to them. They are secure properties (idm.sec. prefix), editable through the configuration service by the application administrator.

# Default CyberArk system (order 1) - UUID of the SysSystem
idm.sec.pam.cyberArk.order1.systemId=<system-uuid>
# Additional CyberArk systems, numbered from 1 upwards without gaps
idm.sec.pam.cyberArk.order2.systemId=<system-uuid>
 
# Systems connected to CyberArk system order1 (numbered from 1)
idm.sec.pam.cyberArk.order1.connectedSystemId1=<connected-system-uuid>
idm.sec.pam.cyberArk.order1.connectedSystemId2=<connected-system-uuid>

Zone and tier

Zone and tier are attributes on both accounts and roles. When a role is requested for a secondary account (PERSONAL_OTHER), the module checks that:

Violations are reported with the result codes below. The check is performed by the pam-role-request-check-zone-and-tier-processor.

Blocking generated passwords on managed accounts

For PAM identities, generated passwords must not be provisioned to accounts whose password is managed by PAM. This is handled by a pair of processors - see the dedicated page:

Password management model

The module derives the password management type from the account UID. The UID is split by underscores; the character immediately following the first underscore determines the type:

userName_Nxxxx_...   -> KEYPASS   (character after first underscore is N)
userName_Pxxxx_...   -> MANAGED   (character after first underscore is P)
Type Meaning
KEYPASS Password is stored in CyberArk but not rotated. Password changes are forwarded to CyberArk.
MANAGED Password is stored and rotated by CyberArk. Provisioning of generated passwords from IdM is blocked.
UNKNOWN Type could not be resolved from the UID (fewer than two underscore separated parts, or an unexpected character).
The module recognizes managed accounts by the character right after the first underscore in the account UID. If the user name part itself contains an underscore, the detection reads the wrong part and the module will not behave correctly. Keep user names free of underscores.

Maintenance

This section describes what the module does around the lifecycle of secondary personal accounts. The behaviour is fully event driven.

Creating a secondary account

When a new PERSONAL_OTHER account is linked to a PAM identity (pam-new-secondary-account-added-processor):

Protecting or deleting a secondary account

Before a secondary account is set to protected or deleted (pam-secondary-account-before-change-to-protected-processor, pam-secondary-account-before-delete-processor), the related CyberArk account id is stored on the event. After the action (pam-secondary-account-after-delete-processor):

FIXME Add the administrator's step-by-step view of these actions (GUI screenshots).

Processors

All PAM processors are guarded by @Enabled("pam").

Account

Provisioning

Role request

Module

Notifications

The module registers its own notification topics and default templates.

Topic Used for Default template
pam:accountCreatedManaged Creation of a MANAGED secondary account pamAccountCreatedManaged
pam:accountCreatedKeypass Creation of a KEYPASS secondary account pamAccountCreatedKeypass
pam:newPasswordManaged New generated password for a MANAGED account
pam:newPasswordKeypass New generated password for a KEYPASS account

Default notification configurations are created disabled on module init and can be enabled in Settings - Notifications.

Permissions

The module currently defines only an example group permission EXAMPLEPAM (with EXAMPLEPAM_ADMIN). Access to PAM related data (accounts, systems, role requests) is governed by the standard core and acc permissions and evaluators - for example the frontend dashboard requires ACCOUNT_READ.

FIXME Define the real PAM group permissions / evaluators once they exist and document them here.

Working with module components

Frontend components

Database

The module keeps its own Flyway history table idm_schema_version_pam. Migrations are located at classpath:eu/bcvsolutions/idm/pam/sql/${dbName} (currently PostgreSQL only).

Result codes

Code HTTP Meaning
ACCOUNT_MANAGED_BY_PAM 400 Password change was blocked because the account's password is managed by the PAM system.
MISSING_ZONE_ON_ACCOUNT 500 The secondary account has no zone attribute.
MISSING_ZONE_ON_ROLE 500 The role has no zone attribute.
MISSING_TIER_ON_ACCOUNT 500 The secondary account has no tier attribute.
MISSING_TIER_ON_ROLE 500 The role has no tier attribute.
MISMATCHED_ZONE_ON_ROLE_REQUEST 400 The role zone and the account zone do not match.
MISMATCHED_TIER_ON_ROLE_REQUEST 400 The account's tier is insufficient for the requested role.
INVALID_TIER_ON_ROLE 500 The role tier is not a number.
INVALID_TIER_ON_ACCOUNT 500 The account tier is not a number.

Troubleshooting

Underscores in account UID

The module determines which accounts are managed by PAM from the character immediately after the first underscore in the account UID (for example `userName_Nxxxx_…`). If the user name part contains an underscore, detection reads the wrong part and the module will not work correctly. Keep user names free of underscores.

CyberArk system id not configured

Processors log "Configuration property for cyber ark system id is not configured correctly or missing." when idm.sec.pam.cyberArk.orderN.systemId is missing or invalid. Verify the CyberArk systems configuration and that the referenced systems exist.

CyberArk account not found

If a password change or account action logs that the CyberArk account was not found, check that the identity is flagged as PAM, that the account is PERSONAL_OTHER, and that a CyberArk account for the same identity + zone exists and is not in protection.

Glossary