Related docs:
VAULT/CYBERARK PRIMER AAP INTEGRATION KEYTAB CAPABILITIES USER LEASE CAPABILITIES OTP CAPABILITIES DOCS MAP
Use this guide when the question is not just “how do I rotate a secret?” but “how do I make access feel temporary or leased inside an IdM-centric estate?”
This page exists because the answer is more nuanced than a flat “IdM has no dynamic secrets.” That statement is still true in the Vault sense. But it is not the whole story.
IdM does not provide Vault-style dynamic secret engines with first-class lease objects, renewal, and revoke semantics. What it does provide is a set of identity-native controls that can be composed into lease-like temporary access patterns.
There are two important patterns:
These are not substitutes for dynamic database credentials or cloud IAM role issuance. They are stronger answers than ordinary static passwords when the workload already fits IdM and Kerberos.
This guide is not claiming:
Those remain real gaps relative to Vault.
This pattern is for temporary user-backed automation or delegated temporary
operator access. In the collection, the concrete surface for this is
eigenstate.ipa.user_lease.
flowchart LR
owner["Delegated group owner"] --> group["Managed IdM group"]
group --> user["Temporary user in group"]
owner --> expiry["Set krbPasswordExpiration
and optionally krbPrincipalExpiration"]
expiry --> login["Password login window closes"]
login --> cleanup["Cleanup removes group membership or user"]
The key idea is that cleanup is not the primary control. Cleanup is hygiene. The primary control is expiry on the identity itself.
Strong version of the pattern:
krbPasswordExpiration for members of that governed groupWhy this is attractive:
Important limits:
krbPasswordExpiration is a password-authentication control, not a full
lease objectkrbPasswordExpiration with
krbPrincipalExpiration and short ticket lifetime policyBest fit:
Read next for the concrete module surface:
This pattern is for service principals or dedicated automation principals.
flowchart LR
issue["Retrieve or generate keytab"] --> ticket["Obtain Kerberos tickets"]
ticket --> run["Run controller-side work"]
run --> rotate["Rotate principal keys again"]
rotate --> dead["Prior key material invalidated"]
The key idea is that the runtime credential is usually a Kerberos ticket, not repeated direct use of the keytab itself.
Why this is stronger than a static password:
principal and keytab already give the collection the surfaces needed to
inspect and drive that lifecycleWhat this is good for:
What it is not:
AAP is useful here, but it is not the only control plane.
AAP helps by supplying:
AAP is not what makes these patterns lease-like. IdM does that part:
That distinction matters. It means the strongest temporary-access story is not “AAP cleanup eventually runs.” It is “IdM access becomes unusable on its own, and AAP handles orchestration around it.”
| Need | Better pattern |
|---|---|
| temporary operator or user-backed automation access | delegated temporary user lease |
| temporary machine identity where Kerberos already fits | Kerberos machine identity lease |
| static shared secret on a schedule | AAP-scheduled rotation workflow |
| dynamic database or cloud credentials | use Vault or another true dynamic secret system |
After this page: