Whenever the business process can be met with workflows, forms, notifications, or policy settings rather than bespoke extensions. Configurability preserves upgrade paths, keeps the platform on a common release track, and prevents the rework that customisation creates every time the product changes.
Why configurability should come first in IAM delivery
Prefer configuration when the requirement can be satisfied with native workflows, forms, approvals, notifications, policy rules, or routing logic. That keeps the IAM platform aligned with its supported upgrade path and avoids creating a second codebase that has to be retested, redeployed, and revalidated every time the vendor changes the product. It is the right default when the business outcome matters more than a unique implementation.
Configurability also fits better when the process is likely to evolve. Access requests, joiner-mover-leaver steps, role approvals, and exception handling often change as organisations refine policy, reorganise teams, or add applications. A configurable design lets teams adjust the workflow without reworking custom extensions, which reduces operational drag and preserves consistency across the identity estate.
When the platform already provides the control, adding bespoke code usually converts a simple policy decision into a maintenance obligation. That is especially true for common IAM functions such as provisioning, approvals, recertification, and entitlement checks, where the Identity Security Programme Guide and the IAM and Identity Provider Buyer's Guide both reflect a basic programme reality: choose the platform path that remains supportable at scale.
What custom code is actually buying you
custom code is justified when the business process creates a genuine gap in platform capability, not just a preference for a tailored screen or a slightly different approval path. The strongest cases are usually where a process needs a unique entitlement calculation, a complex integration, or a control decision that cannot be expressed cleanly in the product’s policy model. In those cases, code is not a convenience, it is the mechanism that makes the control work.
The trade-off is that custom code narrows portability. You often gain precision at the cost of upgrade friction, testing overhead, and dependency on a small number of people who understand the extension. That risk grows when the code touches provisioning logic, access decisions, or directory workflows, because failures there affect who gets access, how quickly access changes propagate, and how reliably exceptions are removed.
For teams dealing with service accounts, tokens, or workload access, the same principle still applies. The Cloud Workload Identity Guide and the Cloud PAM and CIEM Guide show why the decision is often about whether a standard control can express the need safely, or whether a bespoke path would create harder-to-audit privilege paths.
How to draw the line in practice
Use a simple decision rule: if the requirement can be met by configuration without weakening policy, breaking supportability, or introducing a hidden manual step, stay with configuration. Move to custom code only when the process is materially different from what the product was designed to do, or when the control outcome depends on logic that the platform cannot express natively.
The best practitioners also test for lifecycle cost, not just first delivery cost. A small code change may look efficient now, but if it affects release cadence, regression testing, incident response, or audit evidence later, the long-term cost usually exceeds the initial gain. The most expensive IAM customisations are the ones that become invisible dependencies in provisioning, certification, and exception handling.
Where teams need a broader control perspective, the Ultimate Guide to NHIs, Lifecycle Processes for Managing NHIs and the CSA Cloud Controls Matrix both reinforce the same operational pattern: identity controls work best when they are standardised, reviewable, and easy to keep current.
Risk and Threat Considerations
Custom IAM code increases exposure when it becomes the only path for access decisions, approvals, or deprovisioning logic. The risk is not just defects, it is drift: over time, the bespoke path can lag product updates, bypass standard controls, or leave edge cases unmanaged, which creates access persistence and audit gaps.
Failure mechanism: A custom extension or script fails during a platform upgrade, a policy change, or an exception path, and the organisation quietly keeps relying on stale logic for provisioning or access enforcement.
Impact: Access can be granted too broadly, revoked too late, or recorded inconsistently, which increases the chance of excessive privilege, orphaned access, and remediation work after an incident or audit finding.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
NIST SP 800-53 Rev 5, CIS Controls v8 and CSA Cloud Controls Matrix set the technical controls, while ISO/IEC 27001:2022 defines the regulatory obligations.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST SP 800-53 Rev 5 | CM-3 — Configuration Change Control | IAM custom code changes require controlled review and testing. |
| Recommendation — Use CM-3 to approve and test IAM extensions before deployment. | ||
| ISO/IEC 27001:2022 | A.8.32 — Change management | Custom IAM logic is a change that must stay supportable and controlled. |
| Recommendation — Apply A.8.32 to govern and test IAM customisations before release. | ||
| CIS Controls v8 | CIS-4 — Secure Configuration of Enterprise Assets and Software | Prefer configurable IAM settings over bespoke code to reduce drift and maintenance risk. |
| Recommendation — Standardise on secure configuration before building custom IAM code. | ||
| CSA Cloud Controls Matrix | IAM — Identity & Access Management | The question is about IAM delivery choices and control maintainability. |
| Recommendation — Use IAM controls to keep identity workflows on supported product paths. | ||
Practitioner Guidance
What to prioritise: Start by mapping every requested customisation to a native platform feature. If the business outcome fits with workflow, policy, or notification configuration, treat custom code as the exception rather than the default.
What to verify: Before approving any extension, confirm who will own it through upgrades, how it will be tested, and whether the same control objective can be achieved with configuration plus documented process.
Common mistake: Teams often justify custom code because it is faster to deliver the first version. The real decision is whether the control will still be supportable when the IAM platform, business process, or audit requirement changes.
Practitioner takeaway: If configuration can achieve the control objective, it usually wins because it preserves vendor support, reduces operational debt, and keeps identity processes easier to change safely.
Related resources from NHI Mgmt Group
Deepen Your Knowledge
Free weekly newsletter
Subscribe to the NHI & AI Identity Journal
The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.
Bonus 33% off our NHI Course when you subscribe.
Reviewed and updated by the NHIMG editorial team on October 6, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org