Provisioned Access and Accessed Access Are Two Different Datasets.

A provisioning record captures a point-in-time entitlement decision: this user was granted access to this application on this date. It records that the door was opened. It contains no information about whether anyone has walked through it since.

An access usage record captures an event: this user authenticated and launched this application at this timestamp from this device. It records that the access was exercised. It is a different dataset from the provisioning record and in most IAM architectures, it does not exist. 

The absence of access usage data has three distinct consequences that are usually treated as separate problems but share the same root cause. First, dormant accounts with valid access entitlements accumulate as an unmonitored attack surface. Second, access reviews that run without usage data certify entitlements rather than evaluate continued need, which is not what ISO 27001 A.5.18, SOC 2 CC6.3, or DPDPA Rules 2025 require from a periodic access review. Third, SaaS licences assigned to users who have not launched the application in months represent recoverable budget that the organisation has no mechanism to identify without usage data.

This blog covers the technical distinction between the two datasets, what each consequence looks like operationally, and what application launch monitoring at the SSO layer produces as a usage record without requiring per-application integrations.

Why Provisioning Records Are Not Usage Records

Provisioning is architecturally event-driven: it triggers on access requests and access removals. Between those two events, the provisioning platform has no visibility into what happens with the entitlement. Whether the user launches the application daily or not at all, the provisioning record is identical. The record reflects the entitlement state, not the usage state. 

Application usage data, where it exists, lives in the application itself. Applications that generate access logs produce records of who authenticated and when. Those records live in the application’s own logging infrastructure. Pulling them into a coherent cross-application usage view requires native API integrations with each application, a CASB layer that monitors application traffic, or manual extraction on a schedule. None of these is operationally straightforward at scale across 40 to 60 SaaS applications. 

The result is that most organisations have precise provisioning records and no structured usage data. The two datasets that together constitute a complete picture of access governance exist independently, and most organisations only have one of them.

What the Absence of Usage Data Costs

Dormant Accounts as an Unmonitored Attack Surface

An account that has not been used in 90 days is not actively monitored by the user who owns it. Password change notifications go unread. Anomalous MFA prompts go unreported. If the account’s credentials are compromised, the compromise may not surface for weeks because the legitimate user has no reason to notice anything unusual about an account they are not using.

NIST SP 800-53 Control AC-2 recommends disabling inactive accounts after a defined period. ISO 27001:2022 Annex A Control A.5.16 requires that identity management include a mechanism for reviewing and disabling inactive identities. Most organisations have a policy that specifies an inactivity threshold. Very few have a technical mechanism that enforces it, because they do not have the usage data needed to identify which accounts are inactive.

Access Reviews Without a Meaningful Baseline

Access reviews under ISO 27001 A.5.18 and SOC 2 CC6.3 are supposed to evaluate whether access is still appropriate. Without usage data, the reviewer can confirm that the entitlement exists and that the user’s current role appears to justify it. They cannot evaluate whether the access has been exercised in the review period, whether the usage pattern is consistent with the stated business need, or whether the access should continue to exist given that nobody has used it in six months.

Under DPDPA Rules 2025, access to personal data should be granted on a need-to-know basis and reviewed periodically. A review that certifies access without any data on whether the access has been exercised is not a meaningful review of whether the need-to-know condition is still met. For financial services organisations and healthcare organisations where access reviews are part of RBI, SEBI, and HIPAA compliance obligations, a review based on usage data is qualitatively and evidentially different from a review based on entitlement records alone.

Recoverable SaaS Licence Spend

SaaS licences are priced per seat. A seat occupied by a user who has not launched the application in six months is a seat being paid for without return. Industry data from SaaS management platforms consistently indicates that between 20 and 30 percent of provisioned SaaS seats are unused in a typical month. For a mid-market organisation with 500 users and 50 SaaS applications, that percentage represents a significant monthly spend on licences that could be reclaimed and reallocated or cancelled. Identifying and reclaiming those seats requires knowing which users have not launched which applications in a defined period. That requires usage data. 

What Application Launch Monitoring Produces

Application launch monitoring captures the event that occurs when a user authenticates through the IAM platform and is directed to a specific application. It operates at the SSO layer, not at the application layer. Any application that uses SSO-based authentication through Akku produces a launch event at the identity platform regardless of whether the application has its own session logging capability. No per-application integration is required.

Each launch event captures the user identifier, the application accessed, the timestamp, the device, and the geo-location of the authentication. This data is stored per user per application, producing a usage record that sits alongside the provisioning record in the identity platform.

Last-Used Date Per User Per Application

The immediately actionable output is a last-used date for each user-application combination. An access review showing a user has not launched an application in 120 days has a different conversation than one showing daily usage. The reviewer makes a decision based on actual usage behaviour rather than on whether the user’s role still appears to justify the access in the abstract.

For automated lifecycle management, last-used date enables a technical policy: accounts that have not accessed an application within a defined period are flagged for review or automatically suspended based on the risk profile of the application. This is the technical enforcement of what ISO 27001 A.5.16 and most inactivity policies describe but rarely implement.

Anomaly Detection From Usage Baseline 

Application launch data over time produces a usage baseline per user per application. A user who normally launches the CRM five times daily but whose launch events stop appearing for two weeks has experienced something: a missed offboarding, extended leave, or an account compromise that locked the legitimate user out. A user who normally accesses a specific application once a week but suddenly launches it dozens of times in a single session is also anomalous. Both signals are only available if launch data is being collected.

Licence Reclamation With Documented Evidence

Usage data enables licence reclamation with evidence rather than estimation. The IT team produces a report showing per application: provisioned users, users who launched at least once in the last 30 days, and users who have not launched in 90 days. That report is the basis for a licence reclamation conversation with the application vendor. Removing dormant seats from a SaaS licence is a straightforward conversation when the usage data supports it.

How This Connects to Automated User Lifecycle Management

Application launch data is most operationally powerful when connected to the automated user lifecycle management layer in Akku rather than existing as a standalone reporting view. When the last-used date for a user-application combination crosses a defined threshold, the lifecycle management layer triggers a review workflow automatically: the user’s manager is notified, confirmation of continued need is requested, and access is removed if no confirmation arrives within the defined period.

This closes the loop between usage visibility and access governance without requiring a manual process for each dormant account. The review is triggered by the data. The outcome is recorded in the provisioning system. The audit trail shows that dormant access was identified, reviewed, and either confirmed or removed, which is the evidence that a meaningful periodic access review under ISO 27001 A.5.18 and DPDPA is supposed to produce.

For ITeS and BPO organisations where employees frequently change project assignments and client system access needs corresponding adjustment, application launch data makes the access actually being used visible in a way that a provisioning record cannot. Access to a client system that has not been launched since a project ended three months ago is a deprovisioning candidate that the standard offboarding process may have missed. 

Before You Move On

Pick three applications in your environment that hold sensitive data. For each one, pull the list of provisioned users from your IAM platform. Then answer: of those users, how many have not accessed the application in the last 90 days?

If the IAM platform cannot answer that question from its own data, the usage visibility gap is confirmed. The provisioning record exists. The usage record does not. The security implication is a list of dormant accounts passing access reviews without any evidence of whether the access is still exercised. The compliance implication is that those reviews, under DPDPA and ISO 27001, are based on entitlement data rather than access behaviour. The cost implication is a straightforward calculation: dormant licensed seats multiplied by the per-seat monthly cost. 

Explore Akku IAM and Lifecycle Management  |  See Akku IGA and Access Reviews  |  Talk to the Akku Team

Questions IT and Compliance Teams Ask About Access Usage Visibility

Q: What is the technical difference between a provisioning record and an application launch record? 

A: A provisioning record captures the entitlement lifecycle: when access was granted, by whom, under what approval, and when it was removed. It records a decision about access. An application launch record captures a usage event: a specific user authenticated and was directed to a specific application at a specific timestamp. The two records describe different things. A provisioning record answers whether a user has access. An application launch record answers whether a user has used their access. Both are required for complete access governance. Most IAM platforms maintain only the provisioning record.

Q: How does application launch monitoring differ from application-level session logging? 

A: Application-level session logging is performed by the application itself and requires either native logging capability in the application or a CASB layer intercepting traffic. Application launch monitoring is performed at the SSO layer: when the user’s authenticated session is redirected from the identity platform to the application, the launch event is captured. It requires no integration with each individual application. Any application using SSO-based authentication through Akku produces a launch event at the identity platform regardless of the application’s own logging capability.

Q: How does DPDPA treat dormant access to personal data systems?

A: DPDPA requires that access to personal data is granted on a need-to-know basis and reviewed periodically. An account that has not accessed a personal data system in several months raises a question about whether the need-to-know condition is still met. A periodic access review certifying access without usage data cannot meaningfully evaluate this. The DPDPA’s access accountability requirements imply that the organisation can demonstrate not just that access exists and was approved, but that access is actively justified by current need. Application launch data provides the evidence needed to distinguish active access from dormant access. 

Q: What is a practical inactivity threshold for triggering an access review?

A: The appropriate threshold depends on the application’s risk profile. For high-sensitivity applications containing personal data, financial records, or privileged system access, 30 days is appropriate. For standard productivity applications, 60 to 90 days is common. The threshold should be defined in the access control policy rather than set arbitrarily, so the automated review trigger is aligned with the policy’s stated inactivity standard. ISO 27001 A.5.16 does not specify a number but requires that inactive identities are identified and addressed within a defined timeframe.

Q: How does usage data improve the quality of access reviews under SOC 2 CC6.3?

A: SOC 2 CC6.3 requires periodic review of whether existing access is still appropriate. With only entitlement data, the reviewer confirms the access exists, and the role appears to justify it. With usage data, the reviewer can evaluate whether the access has been exercised in the review period and whether the usage pattern is consistent with the stated business need. A reviewer who sees that a user has not launched an application in 180 days makes a substantively different decision than one who sees only that the entitlement exists. The audit evidence produced by a usage-informed review is qualitatively stronger under both SOC 2 and ISO 27001.

Q: How does Akku connect application launch data to the provisioning and deprovisioning lifecycle?

A: In Akku, application launch events are captured at the SSO layer when users access applications through Akku-managed SSO. This data feeds into the access governance layer alongside provisioning records, producing a combined view of who has access and who is using it. Inactivity thresholds can be configured as policy rules that trigger automated review workflows when a user-application combination has not produced a launch event within the defined period. The full chain from provisioning through usage monitoring through periodic review to deprovisioning is traceable in a single audit trail.

Authentication Visibility Stops Where Your Monitoring Stack Ends.

If your SSO platform had a service disruption at 2am tonight, how would your team find out about it?

For most IT operations and security teams, the honest answer is: when the support tickets start arriving in the morning. Someone arrives at work, tries to log in, fails, and raises a ticket. By the time the third ticket arrives, the pattern is clear. By the time the root cause is identified, the disruption has been running for several hours.

This is not a process failure. It is an instrumentation gap. The authentication health signal that would have indicated the disruption at 2am was present in the IAM platform’s event stream the entire time. The success rate dropped. The failure rate climbed. The volume pattern shifted. All of it was in the data. None of it was connected to a monitoring layer that could evaluate it against a threshold and generate an alert before the first user noticed anything. 

The same gap applies to security incidents. A credential stuffing attack that ramps up at 3am and stops before dawn leaves its pattern in the authentication event stream. A SAML assertion configuration that broke during a maintenance window produces a consistent failure rate from the moment the change took effect. A compromised account used at unusual hours generates authentication volume that does not match the user’s baseline pattern. All detectable. All invisible if the authentication layer has no monitoring coverage.

This blog covers the architectural difference between a log interface and an authentication telemetry API, what the Login Metrics API with 24-hour trend data exposes, the specific detection scenarios it enables, and how it connects to the event-level signal data from the MFA Failures and Lockout API covered in the previous blog.

The Architectural Difference Between a Log Interface and a Telemetry API

Every IAM platform produces authentication event data. The question is what form it takes and what it is designed for.

A log interface is designed for a human analyst investigating a known problem. They navigate to the log viewer, apply filters, select a time range, and read the results. It answers questions when asked. It does not surface anomalies unprompted. If an analyst does not know a problem exists, the log interface provides no signal. The detection latency of a log interface is the time between an anomaly occurring and the next time a human happens to look at the right screen.

A telemetry API is designed for a monitoring system that evaluates data continuously against defined thresholds. It delivers pre-aggregated metrics in a structured format that a dashboard or alerting rule can consume without a human in the loop. The detection latency of a telemetry API connected to a monitoring layer is the time between an anomaly occurring and the alerting threshold being breached, which is minutes rather than hours.

Most IAM platforms provide the first. Akku’s Login Metrics API provides the second.

What the Login Metrics API Provides

Total Login Count Over Configurable Time Windows

Login volume is the baseline for anomaly detection. Normal Monday morning volume for a given environment might be 2,400 authentication events in the first hour. A Monday morning producing 400 events in that window is an anomaly: a service disruption, a network issue, or a configuration problem blocking users from reaching the authentication layer. Volume anomaly detection requires a baseline. The configurable time windows in the API allow the monitoring layer to compare current volume against historical baselines for the same time window and day of week automatically.

Login Success Rate as a Percentage

Success rate is the most sensitive indicator of authentication health. In a healthy environment with MFA enforcement, success rate sits within a consistent range, typically between 93 and 97 percent accounting for routine MFA failures. A drop to 78 percent is a signal regardless of the cause: broken SAML assertion, misconfigured service account credentials, active attack, or integration failure. The monitoring layer does not need to identify the cause to fire the alert. It needs to know the rate has moved outside the normal range.

Login Failure Rate by Authentication Stage 

Failure rate broken down by authentication stage provides diagnostic context. A spike in primary credential failures indicates something different from a spike in MFA failures. Primary credential failures at elevated rates suggest a password sync problem, stale credentials in an integration, or a credential stuffing attempt using out-of-date credentials that fail before reaching the MFA step. MFA failure spikes indicate the attack patterns described in Blog 2 of this series. Stage-level breakdown narrows the investigation before anyone opens a log viewer. 

24-Hour Sparkline Trend Data

The 24-hour sparkline provides temporal context. A success rate of 89 percent is alarming if yesterday’s baseline was 96 percent. It is expected if the last 24 hours shows a gradual drift from 92 percent correlating with a known migration. The sparkline is an ordered array of hourly data points covering the previous 24 hours, structured for direct embedding in Grafana, Datadog, and custom JSON-sourced dashboards. The time series format is compatible with Grafana’s native time series panel without transformation. A visual trend line rather than a single number makes the distinction between a sudden anomaly and gradual drift immediately obvious.

Detection Scenarios This Data Enables

SAML and OIDC Integration Failure

A SAML assertion configuration is modified during a maintenance window. The change is syntactically valid but semantically incorrect: the audience restriction is set to the wrong service provider identifier. Every authentication attempt against that integration fails from the moment the change takes effect. Without authentication telemetry, the failure accumulates invisibly until users arrive in the morning and report problems. With a success rate threshold alert connected to the Login Metrics API, the monitoring layer fires within minutes of the configuration change. The investigation identifies the maintenance window as the cause before the first user has noticed anything.

Gradual Certificate Expiry

A certificate used in an OIDC integration approach’s expiry. The relying party begins intermittently rejecting authentication attempts as the validity window narrows. The success rate drifts downward over several days from 96 percent to 88 percent. A sharp drop triggers a threshold alert immediately. A gradual drift requires trend analysis. A monitoring rule comparing the current success rate against the 7-day rolling average fires when the deviation exceeds a defined percentage, detecting the drift long before the certificate expires entirely and authentication fails completely.

Off-Hours Authentication Volume Anomaly

A compromised account is used by an attacker outside the legitimate user’s normal working hours. Authentication volume for that identifier between midnight and 4 am significantly exceeds the user’s normal overnight baseline. Per-identifier volume monitoring built on the Login Metrics API detects this. A rule flagging identifiers with overnight volume exceeding their rolling baseline by a defined percentage surfaces the anomaly before the account owner’s working day begins.

How This Connects to the MFA Failures and Lockout API

The Login Metrics API provides aggregate health data for operational monitoring and threshold alerting. The MFA Failures and Lockout API covered in Blog 2 provides individual event data for SIEM detection rules and investigation. The two APIs address different points in the detection and response chain. When the metrics layer fires a success rate alert, the event layer provides the data to investigate the cause: which specific identifiers are failing, which methods are failing, and whether the pattern matches an attack or a configuration problem. Both are needed for complete authentication visibility.

For ITeS and BPO organisations where authentication availability directly affects client SLA obligations, the combination of metrics-layer alerting and event-layer investigation changes means time to detect and mean time to resolve for authentication incidents. For financial services organisations where RBI’s Cybersecurity Framework requires near-real-time monitoring of authentication anomalies, the Login Metrics API with sub-minute polling latency satisfies the monitoring requirement at the data layer.

What to Check About Your Current Authentication Visibility

Ask whoever is on call tonight this question: if the login success rate across your SSO dropped 20 per cent right now, how long would it take them to find out, assuming no users report anything?

If the answer is measured in hours, authentication health is not part of your current monitoring architecture. The IAM platform is producing the data. Nothing is consuming it for alerting purposes.

The follow-up question: What is the current source of truth for authentication health? If the answer is the IAM platform’s internal admin console rather than a connected monitoring tool with configurable alerting, the detection latency for authentication anomalies is the time between the anomaly occurring and the next time someone manually opens that console. That gap is where incidents live between 2 am and 9 am.

See Akku IAM Authentication Architecture  |  Explore Akku MFA Capabilities  |  Talk to the Akku Team

Questions IT Operations and Security Teams Ask About Authentication Telemetry

Q: What is the data format and query interface for the Login Metrics API? 

A: The Login Metrics API returns structured JSON. Each response includes the time window covered, total login count, success count, failure count, success rate as a percentage, failure rate as a percentage, and the 24-hour sparkline as an ordered array of objects where each object contains a timestamp and a value. The API supports configurable time windows for aggregate metrics. The sparkline provides hourly data points over the previous 24 hours by default, with the option to request higher granularity at shorter intervals. The format is designed for embedding in dashboard tools that support JSON data sources, including Grafana and Datadog.

Q: How does this API differ from the logs already available in the Akku admin console?

A: The admin console provides access to the full audit log through a user interface designed for manual review and investigation. The Login Metrics API provides pre-aggregated metrics in a format designed for programmatic consumption by monitoring tools and alerting systems. The distinction is between a log interface requiring a human to navigate and interpret the data, and a metrics API delivering structured numerical data ready for automated threshold evaluation. The underlying authentication event data is the same source. The format and delivery mechanism are optimised for different consumers.

Q: Can this data be integrated with Grafana, Datadog, or similar observability platforms?

A: Yes. The structured JSON output is compatible with any observability platform supporting HTTP-based data sources, including Grafana, Datadog, and New Relic. For Grafana, the API can be configured as an Infinity data source. The sparkline data array is directly compatible with Grafana’s time series panel format without a data transformation step. For teams centralising infrastructure and application metrics in an observability platform, the Login Metrics API closes the gap where authentication health was previously absent from the unified operational dashboard.

Q: How does the 24-hour trend data help distinguish attacks from configuration problems?

A: Attacks and configuration problems produce different trend shapes. A sudden step-change drop at a specific timestamp is characteristic of a configuration event. A gradual drift downward over hours or days is more consistent with an expiring certificate or degrading integration. A spike in failure rate affecting only certain MFA methods while others remain normal points to an MFA delivery issue rather than a broad authentication failure. The 24-hour sparkline provides the temporal context needed to distinguish these patterns, which determines whether the appropriate response is a configuration rollback, a certificate renewal, or a security incident response. 

Q: How does authentication health monitoring connect to privileged session monitoring in Akku PAM? 

A: Authentication health monitoring through the Login Metrics API covers the authentication layer: who is attempting to authenticate, at what volume, and with what success rate. Privileged session monitoring through AkkuReka covers what authenticated privileged users do inside their sessions: commands executed, files accessed, and configuration changes made. The two monitoring layers address different risk surfaces. Authentication monitoring detects anomalies at the perimeter of the identity layer. Session monitoring detects anomalies inside the sessions of users who have already authenticated. For a comprehensive identity security monitoring posture, both layers are needed. 

Q: How does login volume monitoring support capacity planning beyond security monitoring? 

A: Authentication volume data over configurable time windows provides the baseline for IAM infrastructure capacity planning. Peak authentication times, day-of-week patterns, and growth trends are all derivable from the Login Metrics API output. For organisations planning IAM platform capacity for workforce growth, mergers, or seasonal peaks, the historical volume data provides the input for capacity modelling. The security monitoring use case and the capacity planning use case share the same API output, making the integration investment serve both purposes.

IAM Authentication Events Are Absent From Most SIEM Detection Pipelines.

The IAM layer generates the earliest detectable signal of a credential attack. Before any account is compromised, before any privileged session is opened, before any data is accessed, the attack produces a pattern in the authentication event stream: MFA failure spikes across multiple distinct account identifiers, account lockout clusters on targeted identifiers, or anomalous recovery attempt volume against accounts the attacker does not own.

That signal is present in the IAM platform’s event log. In most organisations, it does not reach the SIEM. Not because the SIEM cannot evaluate it, but because the IAM authentication event stream is not connected to the detection pipeline in a form that detection rules can consume in real time.

The architectural reason is specific. SIEM deployments are built around log sources with standardised connectors and documented formats: Windows Event Logs, firewall syslog, endpoint detection telemetry, and cloud provider audit logs. IAM authentication events are less standardised across vendors. Getting them into a SIEM has historically required custom log parsing, manual export pipelines with significant latency, or professional services integrations that are expensive to build and maintain. None of these produces a real-time structured event stream. The detection gap is an integration architecture problem, not a SIEM capability problem.

This blog covers what the credential attack signal looks like in the IAM authentication event stream at the technical level, why the three conventional integration approaches all fail to close the detection gap, and what a structured API feed from the IAM layer changes for detection rule design and SIEM integration.

Why Conventional IAM-to-SIEM Integration Approaches Fail

Custom Log Parsing

Raw log parsing requires building regex patterns against the IAM platform’s native log format. The patterns work until the log format changes, which happens with platform version updates. The maintenance overhead is ongoing. More critically, the output of raw log parsing is rarely clean enough for threshold-based detection rules: field extraction inconsistencies produce false positives at rates that make the rules operationally useless. 

Manual Export Pipelines

Scheduled batch exports run on a defined interval. Hourly is common. The detection latency introduced by a one-hour export interval means that a credential stuffing attack that runs for 40 minutes and stops has exited the active attack window before the data reaches the detection layer. The SIEM fires on historical data. The attacker is gone.

Professional Services Integrations

Custom integrations built by professional services teams are accurate but brittle. When the IAM platform updates or the SIEM changes versions, the integration requires rework. Most organisations that have gone this route maintain a connector that is perpetually one version behind. The integration exists on paper. The event data it delivers is incomplete or delayed in practice.

What Credential Attacks Look Like in the IAM Authentication Event Stream

Credential Stuffing: MFA Failure Rate Across Distinct Account Identifiers

Credential stuffing uses username and password combinations from breach databases. The attacker does not know which credentials are still valid, so they attempt to authenticate across a large number of distinct account identifiers. Against an organisation with MFA enforcement, valid primary credentials are blocked at the MFA challenge. The result in the authentication event stream is a spike in MFA failures across many distinct actor identifiers within a short time window.

Each individual failure is routine. The pattern across dozens of distinct identifiers within minutes is not. A detection rule evaluating MFA failure rate across distinct account identifiers within a rolling time window fires on this pattern before any account is compromised. The rule needs the event stream. 

Brute Force: Lockout Clusters on Specific Identifiers 

Brute force attacks target specific account identifiers with repeated authentication attempts. Most lockout policies trigger between 5 and 10 failed attempts. The attack produces a sequence of authentication failures on a single identifier ending in a lockout event. A single lockout is routine. Multiple lockouts on distinct identifiers within a short window, or repeated lockouts on the same identifier following manual unlocks, is a brute force signal. Detection rules built on lockout event data with time-window clustering logic identify this pattern. The data needs to be in the SIEM.

Account Recovery Exploitation: Anomalous Recovery Attempt Volume

Social engineering attacks targeting recovery flows initiate recovery requests across a set of target accounts. The volume of recovery attempts across distinct identifiers in a short window is anomalous against any reasonable baseline. This signal does not appear in network logs, endpoint telemetry, or firewall data. It only exists in the IAM authentication event stream. Most SIEM deployments have no recovery attempt data from the IAM layer at all.

What the Akku MFA Failures and Lockout API Exposes

Akku’s Locked Accounts, MFA Failures and Recovery Attempts API provides a structured JSON event stream covering all three signal types. Each MFA failure event includes event_type, actor_id, timestamp (ISO 8601 with millisecond precision), mfa_method (TOTP, push, hardware_token, or FIDO2), failure_reason (wrong_code, expired_code, or method_unavailable), outcome, source_ip, geo_location, and risk_context from the adaptive MFA evaluation. Each lockout event includes actor_id, timestamp, failed attempt count, and source_ip. Each recovery attempt event includes actor_id, timestamp, recovery method, and outcome.

The API supports real-time streaming retrieval and batch polling with intervals as short as one minute. For SIEM deployments consuming streaming event data, events are available as they are written to the audit log. For polling integrations, one-minute intervals reduce detection latency to a fraction of what hourly batch exports produce.

The schema is consistent with Akku’s standard audit log field definitions, making it compatible with SIEM parsing rules already built for the Akku audit log format without requiring separate field extraction logic.

What Detection Rules This Data Enables

Credential Stuffing Detection in Splunk SPL and Microsoft Sentinel KQL

In Splunk SPL, a credential stuffing detection rule on this event stream is a standard stats count(distinct actor_id) by time_bucket query with a where clause on the count exceeding a defined threshold. In Microsoft Sentinel KQL, the equivalent is a summarize dcount(actor_id) by bin(TimeGenerated, 10m) query with a where clause on the distinct count. Both are native query constructs in their respective platforms. No custom detection logic is required. The threshold is calibrated against the normal baseline MFA failure rate in the specific environment.

Adaptive MFA Risk Context as a Detection Signal

Akku’s adaptive MFA evaluates contextual risk signals before triggering the MFA challenge: geo-location relative to the user’s baseline, IP reputation, time-of-day, and device familiarity. The outcome of this evaluation is included in the risk_context field of each event. Detection rules can weight MFA failures differently based on this context. A failure from a known device at a normal time contributes a lower risk signal than a failure from an unrecognised device at 3am from a high-risk IP. This reduces false positives from legitimate users who occasionally fail the MFA challenge while maintaining sensitivity to attack patterns.

How This Connects to the Login Metrics API

The MFA Failures and Lockout API provides event-level signal data for detection rules. Akku’s Login Metrics API provides aggregate authentication health metrics for operational monitoring: total login counts, success rates, failure rates, and 24-hour trend data. Used together, the event-level API feeds SIEM detection rules and the metrics API feeds operational dashboards and threshold alerting. The two APIs address different points in the detection and response chain. Both are needed for complete authentication visibility.

What to Check About Your Current Detection Coverage

Query your SIEM for detection rules that reference your IAM platform as a data source. Count the rules that use MFA failure data as an input. Count the rules that use account lockout event data. Count the rules that reference recovery attempt activity.

If the answer to all three is zero, the detection stack has no coverage for credential-based attacks operating at the authentication layer. For financial services organisations under RBI’s near-real-time monitoring requirements, and for ITeS and BPO organisations where client data protection obligations require active authentication anomaly monitoring, the absence of IAM event data in the SIEM is a regulatory gap as well as an operational one.

See Akku IAM Authentication Architecture  |  Explore Akku MFA Capabilities  |  Talk to the Akku Team

Questions Security Operations Teams Ask About IAM and SIEM Integration

Q: What is the specific JSON schema for the MFA Failures and Lockout API output?

A: Each event object includes event_id (unique immutable identifier), event_type (mfa.failure, account.locked, or recovery.attempted), timestamp (ISO 8601 with millisecond precision), actor_id (Akku IAM user identifier), mfa_method (TOTP, push, hardware_token, or FIDO2 for MFA failure events), failure_reason (wrong_code, expired_code, or method_unavailable for MFA failure events), outcome (failure or blocked), source_ip, geo_location, and risk_context (adaptive MFA risk signals evaluated for the authentication attempt). The schema is consistent with Akku’s standard audit log field definitions, making it compatible with SIEM parsing rules already built for the Akku audit log format.

Q: Can these detection rules be built in Splunk SPL or Microsoft Sentinel KQL without custom development?

A: Yes. In Splunk SPL, credential stuffing detection is a standard stats count(distinct actor_id) by time_bucket query with a where clause on the count. In Microsoft Sentinel KQL, the equivalent is a summarize dcount(actor_id) by bin(TimeGenerated, 10m) query. Both are native constructs. The API output is structured to avoid requiring custom field extraction. Once the API feed is configured as a data source, detection rules can be built using the SIEM platform’s native query language.

Q: How does adaptive MFA reduce false positives in credential attack detection rules?

A: Akku’s adaptive MFA evaluates geo-location relative to the user’s baseline, IP reputation, time-of-day, and device familiarity before triggering the MFA challenge. The risk_context field in each event carries this evaluation. Detection rules can use this field to weight failures by context: a failure from a known device at a normal time is weighted lower than a failure from an unrecognised device at an unusual time from a high-risk IP. This reduces false positives from legitimate users who occasionally fail the MFA challenge while maintaining detection sensitivity for attack patterns.

Q: What is the latency between an authentication event occurring and it being available through the API?

A: Events are written to the Akku audit log in near-real time. The API reflects the current audit log state with low query latency. For streaming SIEM integrations, events are available as they are written. For polling integrations, intervals as short as one minute are supported. A credential stuffing attack running for 10 minutes produces event data available in the detection stack within minutes of the first failure, rather than at the next scheduled hourly batch export. 

Q: How does this integrate with SOAR platforms for automated response?

A: The structured JSON output is compatible with SOAR platform ingestion. A common automated response pattern: the SIEM detection rule fires on an MFA failure threshold breach, triggers a SOAR playbook, the playbook queries the API for additional context on flagged actor identifiers (source IPs, failure methods, geo-locations), and based on that context either automatically locks flagged accounts and notifies the security team or escalates to a human analyst. The API supports both real-time queries for individual actor identifiers and batch queries for multiple identifiers.

Q: How does the MFA Failures API differ from the login activity data in the Akku admin console?

A: The admin console provides access to the full audit log through a user interface designed for manual review. The MFA Failures and Lockout API provides a programmatic event stream designed for machine consumption: structured JSON with consistent field names, event-level granularity, and real-time or batch retrieval. The distinction is between a log interface requiring a human to navigate and interpret, and an event stream that detection rules evaluate automatically against thresholds. The underlying data is the same. The format and delivery mechanism are designed for different consumers.

Informal Access Provisioning Produces No Defensible Audit Evidence.

Defensible audit evidence for an access grant has a specific technical definition. It is not a confirmation that the access exists. It is not a record that the access was provisioned. It is a structured record of a formal authorization decision: the identity of the person who approved the access, their authority to approve it, the scope of access approved, the business justification, and the timestamp of the decision, all stored in a system that is queryable, tamper-evident, and independent of any individual’s inbox.

An email from a department head saying please give Rahul access to the finance system satisfies none of those requirements. It is a request. The IT manager acting on it is a provisioning action. Neither constitutes a formal authorization decision in the sense that ISO 27001:2022 Annex A Control A.5.18, SOC 2 CC6.1, or DPDPA Rules 2025 mean when they use that term.

The gap between what most organizations produce as access approval records and what those frameworks require is one of the most consistent findings in IT compliance audits. It persists not because IT teams are careless but because the tooling most organizations rely on was built to provision access efficiently. Recording the governance decision behind the provisioning action was never part of the design.

This blog covers exactly what defensible audit evidence for access governance requires technically, where informal approval processes fail against each framework standard, and what a structured approval workflow produces that an email thread cannot.

What Defensible Audit Evidence for Access Governance Actually Requires

ISO 27001:2022 Annex A Control A.5.18 requires that access rights are provisioned based on a formal authorization process, and that the process is documented. The documentation requirement is specific: it must be possible to demonstrate, for any access grant, that an authorization process was followed. That demonstration requires a record with identifiable fields, not a message that may or may not contain the relevant information depending on how it was written.

The specific fields that constitute a defensible access authorisation record are: the identity of the requester and their role, the identity of the approver and their authority to approve access of the type requested, the system and permission scope being approved, the business justification for the access, the timestamp of the approval decision, the duration of the access where time-limited, and a reference to the access control policy or role definition the approval was evaluated against.

SOC 2 CC6.1 requires that logical access controls restrict access to authorized individuals and that the authorization can be demonstrated. The evidence standard for CC6.1 is a queryable record showing that each access grant was authorized by a person with the defined authority to grant it. An email buried in a former employee’s archived mailbox does not constitute a queryable record in any operationally meaningful sense.

DPDPA Rules 2025 require that access to personal data is granted on a need-to-know basis. At the evidence level, this means the organization must demonstrate on demand that each access grant to a personal data system was based on a documented business need, approved by an appropriate authority, and reviewed since it was granted. A supervisory review under DPDPA does not arrive on a scheduled basis. It can arrive following an incident. The evidence of access governance needs to be retrievable immediately, not reconstructed from historical communications.

Where Informal Approval Processes Fail the Evidence Standard

The Record Is Tied to an Individual Inbox

An email approval lives in the approver’s inbox. When that person leaves the organization, the inbox is archived, restricted, or deleted depending on the organization’s data retention policy. Reconstructing an access decision made 18 months ago by a manager who left the organization 12 months ago requires locating the archived mailbox, obtaining access to it, identifying the correct thread, and confirming that the relevant approval is in the thread rather than in a separate conversation. This is an investigation, not a record retrieval.

A structured approval record stored in the identity governance platform is queryable by the compliance team regardless of whether the original approver is still with the organization. The record exists independently of any individual’s employment status.

The Record Has No Structured Schema

An email approval has no schema. Whether it contains the information an auditor needs depends entirely on how the email was written. A subject line reading access for new joiner and a body reading please sort this out contains no approver identity in a queryable field, no scope definition, no business justification, and no reference to an access control policy. It contains a request. That is not the same as an authorization record.

A structured approval record has defined fields. Every record for every access grant contains the same information in the same format, regardless of who wrote the request or how formally they phrased it. The schema enforces the evidence standard at the point of approval, not at the point of the audit.

The Approval Scope Is Undefined

Email-based approvals routinely approve access at an application level without defining the role, permission set, or data scope within the application. Approving access to Salesforce without specifying whether that means read-only access to one regional pipeline or administrative access to the full CRM is not a scoped authorization. It is a vague grant that cannot be meaningfully reviewed for continued appropriateness because the original scope was never defined.

Under SOC 2 CC6.3, access reviews are supposed to evaluate whether existing access is still appropriate. If the original approval did not define the scope, the reviewer has no baseline against which to evaluate appropriateness. They are certifying that the access exists and that the user’s role appears to justify something. They cannot evaluate whether the specific access granted was appropriate then or remains appropriate now.

What a Structured Approval Workflow Produces That Email Cannot

A Schema-Enforced Authorization Record 

A structured workflow captures the approval decision in a defined schema at the point the decision is made. The requester, approver, access scope, business justification, and timestamp are all mandatory fields. The record cannot be created without them. This means the evidence standard is enforced by the system rather than by the discipline of the person writing the email. 

A Queryable Audit Trail Independent of Personnel

The approval record lives in the identity governance platform, not in an inbox. It is queryable by system identifier, user identifier, approver identity, application, date range, and approval status. A compliance team preparing for an ISO 27001 audit can retrieve the complete approval history for any application in under a minute. The same query works whether the original approver is still with the organization or left three years ago.

An Access Review Baseline With Defined Scope

When an access review runs under ISO 27001 A.5.18 or SOC 2 CC6.3, the reviewer sees the original approval record alongside the current access state. They can evaluate whether the business justification still holds, whether the scope of access is still appropriate given the user’s current role, and whether the duration of the access was meant to be time-limited. This is a genuine review of continued appropriateness, not a certification that the access exists.

For financial services organizations under RBI’s Cyber Security Framework and SEBI CSCRF requirements, structured access approval records satisfy the audit trail requirement at the individual access grant level. For ITeS and BPO organizations subject to client compliance audits with short notice, retrievable approval records change the audit response time from days to minutes.

How This Connects to the Broader Identity Governance Architecture

Structured access approval workflows are one component of identity governance and administration that sits in front of the provisioning layer. The approval record triggers the provisioning action. The two records reference the same request identifier, so the full chain from approval to entitlement to periodic review to deprovisioning is traceable in a single audit trail.

For organizations using Akku IAM for provisioning, adding structured approval workflows closes the governance gap without replacing the provisioning architecture. The approval step sits in front of provisioning and produces the audit record that the provisioning action alone cannot.

Before You Move On

For any five access grants made in the last 12 months to a sensitive system, try to retrieve the authorization record from your current systems. Check whether the record contains the approver’s identity, the scope of access approved, the business justification, and the timestamp of the decision, all in a queryable format.

If any of those five records requires searching an inbox, asking the original approver, or acknowledging that the record may not exist in a structured form, the gap between your current process and what ISO 27001 A.5.18 and DPDPA require is confirmed.

Explore Akku IGA Capabilities  |  See Akku IAM Provisioning  |  Talk to the Akku Team 

Questions Compliance and IT Teams Ask About Access Approval Workflows

Q: What is the difference between an access request and an access approval under ISO 27001?

A: An access request is an expression of intent: someone wants access to a system. An access approval is a formal authorisation decision: a person with defined authority has reviewed the request against the access control policy and made a documented decision to approve it. ISO 27001:2022 Annex A Control A.5.18 requires that access rights are provisioned based on a formal authorisation process, and that the process is documented. An email request that an IT manager acted on is a fulfilled request. It is not a documented authorisation process unless the approval decision itself was recorded in a structured schema with the approver identity, scope, business justification, and timestamp.

Q: What does DPDPA Rules 2025 require specifically at the access approval evidence level?

A: DPDPA requires data fiduciaries to implement technical and organisational measures ensuring access to personal data is granted on a need-to-know basis. At the evidence level, the organisation must demonstrate on demand that each access grant to a personal data system was based on a documented business need approved by an appropriate authority. The DPDPA does not prescribe a specific tool. It sets an outcome: the access decision must be demonstrable. An email in an inbox that may or may not be searchable after the approver has left the organisation does not satisfy this standard in a regulatory review or supervisory investigation context.

Q: What should a structured access approval record contain to satisfy audit requirements across ISO 27001, SOC 2, and DPDPA simultaneously?

A: The record should contain the identity of the requester and their business role, the identity of the approver and their authority to approve access of the type requested, the system and permission scope being approved, the business justification for the access, the timestamp of the approval decision, the duration of the access where time-limited, and a reference to the access control policy or role definition the approval was evaluated against. This structure satisfies the documentation requirement of ISO 27001 A.5.18, the authorization evidence requirement of SOC 2 CC6.1, and the access accountability requirement of DPDPA. For multi-level approvals, each approval step should have its own record.

Q: How does a structured approval workflow connect to the access review process under SOC 2 CC6.3?

A: SOC 2 CC6.3 requires periodic review of whether existing access is still appropriate. For that review to be meaningful, the reviewer needs to know what was approved, at what scope, and for what business justification. A structured approval workflow provides this baseline automatically. The reviewer sees the original approval record alongside the current access state and can evaluate whether the justification still holds. Without this baseline, the reviewer can only certify that the access exists, not that it remains appropriate. The quality difference between the two types of review is the difference between a compliance exercise and a genuine governance evaluation.

Q: How do you transition from email-based approvals to a structured workflow without disrupting operations?

A: Three steps. First, define the approval workflow for each category of sensitive system: who has authority to approve access, what information must be captured, and what the response time expectation is. Second, configure the identity governance platform so that provisioning actions for those systems require a completed approval record rather than an informal message. Third, make the new process at least as fast as the informal one for routine requests. A well-configured approval workflow for a standard access request should complete in under an hour. The operational disruption is minimal if the workflow is designed around the actual approval behaviour rather than around a theoretical governance model.

Q: What is the regulatory risk of continuing with informal access approvals under DPDPA and ISO 27001? 

A: Under ISO 27001, informal access approvals are a control gap that affects certification. An auditor finding that access rights are provisioned without a documented authorization process is an A.5.18 nonconformity. Under DPDPA, the risk is potentially more significant because the data protection board has investigatory powers that are not confined to scheduled audits. An organization that cannot demonstrate structured access approval records for personal data systems is in a materially weaker position in any regulatory interaction, regardless of whether a breach has occurred. The absence of evidence is not evidence of absence in a regulatory investigation.

Your Compliance Reports Are Only as Current as Your Last Manual Export

When did you last run a compliance evidence collection that did not surface something unexpected?

Not a gap in your controls. Something more mundane than that. A SCIM connector that failed three weeks ago that nobody noticed because there was no monitoring on it. A provisioning record that shows an offboarded user as deprovisioned, but the application itself still has the account active because the sync did not complete. A GPO configuration that drifted during a patch cycle and was never reverted. None of these are dramatic failures. They are the kind of thing that shows up when someone starts pulling data for an audit and the data does not match what the platform said it was.

The reason this keeps happening is not carelessness. It is architecture. The evidence that compliance audits require does not live in one system. Authentication logs live in the IAM platform. GPO configuration states live in Active Directory. Threat detection events live in the SIEM or the security monitoring layer. Provisioning records live in whatever system runs your identity lifecycle. Getting all of that into one place, in a format an auditor can use, requires a person to do it manually every single time.

That person assembles the evidence. They reconcile the formats. They discover the gaps. They fix what can be fixed before the package goes out. And the package that results reflects the state of the environment during the collection window. Not today. The window when someone was pulling data. 

This blog is about why that architecture cannot satisfy what ISO 27001:2022 and DPDPA Rules 2025 actually require at the evidence level, and what changes when compliance data becomes something your systems produce continuously rather than something your team assembles under a deadline.

The Evidence Collection Problem Is Not a Process Problem. It Is an Architecture Problem.

Most compliance teams treat audit preparation as a sprint. In the weeks before an audit, the team runs harder, pulls more data, and patches what they can before the auditors arrive. The sprint is exhausting and it is built into the annual calendar as an accepted cost.

But the sprint is not the real problem. The sprint is a symptom of a compliance architecture where evidence only gets collected when someone needs it. Between audits, controls drift. Connectors fail. Policies get modified and not reverted. None of that is visible because nobody is looking. The audit creates the forcing function to look, which is why the looking almost always surfaces something.

The architecture problem has three specific components that compound each other. 

No Unified Evidence Surface 

The data that compliance audits require is distributed across systems that were not designed to produce evidence together. The Akku IAM platform holds authentication events and provisioning records. Active Directory holds GPO configuration states. Your SIEM holds threat detection events. Your ticketing system holds access request and approval records. Each of these is a valid data source. None of them produce a unified, audit-ready output without a person in the middle connecting them.

The practical consequence: every audit cycle requires someone to navigate each system, export data in that system’s native format, reconcile the exports, and reformat everything for the auditor’s requirements. For organisations managing compliance across ISO 27001, SOC 2, HIPAA, and DPDPA simultaneously, the same data gets extracted and reformatted multiple times for different framework requirements.

Evidence Is Always Retrospective

Manual evidence collection produces a snapshot. The snapshot is accurate at the time it is taken. By the time it reaches the auditor, the environment has continued to evolve. If your MFA enforcement policy was modified for a department two weeks after the evidence was collected, that modification is not in the compliance package. The auditor is reviewing a state that no longer exists.

ISO 27001:2022 Annex A Control A.8.16 requires ongoing monitoring for anomalous behaviour. The 2022 revision was explicit about this: the standard moved from periodic review to continuous monitoring. A compliance programme that collects evidence periodically and reviews it before audits does not satisfy A.8.16 as written in the current version of the standard. It satisfies the 2013 version’s intent. That distinction matters at recertification.

Gaps Are Found During Collection, Not Before

The most operationally damaging aspect of manual evidence collection is that it is often the first time anyone discovers that something went wrong. The SCIM connector failure that left offboarded users with active entitlements is discovered when someone cross-references the HR departure log against the provisioning records during audit prep. The GPO drift is discovered when someone exports the current configuration and compares it manually against the baseline. The discovery happens at the worst possible time, when the audit is imminent and there is no runway to investigate properly.

A compliance architecture that detects these gaps continuously rather than at collection time changes the operational dynamic entirely. The gap is found when it opens, not when the auditor is two weeks away.

What ISO 27001:2022, DPDPA Rules 2025 and RBI Actually Require at the Evidence Level

The frameworks that govern financial services, healthcare, and ITeS organisations in India are not ambiguous about what evidence they expect. But there is a meaningful gap between what the frameworks say and what most compliance programmes produce.

ISO 27001:2022: Continuous Monitoring Is the Requirement, Not the Aspiration 

Control A.8.15 requires that event logs recording user activities, exceptions, and information security events are produced, stored, protected, and analysed. The key word is analysed. A log that is stored but only reviewed before audits has not been analysed in any operationally meaningful sense. The control requires active review, which implies continuous or near-continuous monitoring rather than periodic batch review. 

Control A.8.16 is more direct. It requires ongoing monitoring of networks, systems, and applications for anomalous behaviour. The 2022 revision added this requirement specifically because the 2013 version’s periodic review approach was insufficient. An organisation that reviews authentication logs quarterly is not satisfying A.8.16. An organisation with a monitoring layer that evaluates authentication events continuously is.

The practical implication for compliance reporting: the evidence package that an ISO 27001:2022 audit expects is not a quarterly snapshot. It is evidence that the monitoring controls were operating continuously over the audit period. That evidence can only come from a system that was actually monitoring continuously, not from a system that collected data before the audit.

DPDPA Rules 2025: Access Accountability Has to Be Demonstrable on Demand

The Digital Personal Data Protection Act requires data fiduciaries to implement appropriate technical and organisational measures to protect personal data. The word appropriate is doing significant regulatory work here. Under DPDPA, an appropriate technical measure for access control is not a policy document and not an annual access review. It is a technical system that can demonstrate, at any point, that access to personal data is restricted to authorised individuals, that access rights are reviewed and kept current, and that access is removed when it is no longer required. 

The data protection board under DPDPA has broad investigatory powers. A supervisory review does not arrive with six weeks of notice. It can arrive when something has gone wrong. If your ability to demonstrate access accountability depends on a manual evidence collection process that takes several days to run, your compliance posture for DPDPA is contingent on having time to prepare. That is not an appropriate technical measure. That is a documentation process.

DPDPA compliance for organisations handling personal data at scale requires that the access accountability evidence is continuously maintained and retrievable on demand. Not assembled when asked for it.

RBI Cybersecurity Framework: Near-Real-Time Is the Stated Standard

The RBI Cybersecurity Framework for scheduled commercial banks requires near-real-time log analysis and audit trails that support forensic investigation. For financial services organisations under RBI oversight, the expectation is that authentication anomalies, privileged access events, and configuration changes are being monitored as they occur. The audit trail exists as a byproduct of that monitoring, not as a separately assembled evidence package.

For organisations currently satisfying RBI requirements through periodic log review, the gap between the framework’s stated standard and the current implementation is a matter of regulatory record. The framework is explicit. The implementation is not matching it.

What Changes When Compliance Data Is Produced Continuously Instead of Collected Manually

The Akku Compliance Reporting API provides a single REST endpoint that returns consolidated compliance data programmatically, on demand or on a configured schedule. Rather than requiring a person to log into multiple systems and extract data, the API produces structured JSON output that covers the three evidence domains auditors request most frequently across ISO 27001, SOC 2, HIPAA, RBI, and DPDPA reviews.

Authentication Events and Login Activity

The API returns total login counts, success and failure rates, MFA failure events with method attempted and failure reason, account lockout events, and recovery attempt activity. Each event is timestamped at the millisecond level and tied to a user identifier. The output is structured JSON compatible with direct ingestion into GRC platforms like ServiceNow GRC and Archer, and into SIEM platforms including Splunk, IBM QRadar, and Microsoft Sentinel. For ITeS and BPO organisations that face client audits with short notice and need to produce structured authentication evidence quickly, this changes the response time from days to the duration of an API call.

GPO Configuration State and Change History

GPO configuration is one of the most frequently requested evidence categories in ISO 27001 and RBI audits. The auditor wants to know what policies are applied, whether they match the required baseline, and whether anything has changed since the last review. Currently, producing that evidence requires a manual export from the Group Policy Management Console, a comparison against a separately maintained baseline document, and a reconciliation of any differences.

The API returns the current GPO configuration state and change history in a structured format. The output identifies what is applied, what changed, when it changed, and what it changed from. The reconciliation step is eliminated because the change history is part of the output rather than a manual comparison.

Threat Detection Events

Threat detection events, authentication anomalies, privilege escalation attempts, and account lockout patterns form the evidence base for demonstrating that detection controls are operating under ISO 27001 A.8.16 and SOC 2 CC7.1. This data currently requires extraction from the security monitoring layer and manual formatting for audit packages. The API consolidates this into the same structured output as authentication events and GPO configuration. A single API call covers all three evidence domains.

How This Fits Into a Broader IAM and PAM Architecture

The Compliance Reporting API is a reporting surface. The quality of the evidence it produces depends on the quality of the controls generating the underlying data.

Authentication events come from the Akku IAM platform handling your organisation’s identity and access management. GPO configuration state comes from your Group Policy environment managed through Akku. Threat detection events include session-level activity captured by AkkuReka, the session proxy component in Akku PAM, which records command-level activity from privileged SSH, RDP, and database sessions.

For teams that have implemented IAM and PAM and are currently spending several days per audit cycle manually assembling evidence, the API eliminates the assembly step without requiring changes to the underlying architecture. The controls already exist. The API makes their output accessible in the format auditors need.

Before You Move On

Pull your last compliance evidence package. Pick any three controls in it that required authentication or access data.

For each one: how many systems did someone log into to collect that data? How long did the collection take? And when the package was complete, how confident was the team that the data reflected the current state of the environment rather than the state during the collection window?

If any of those controls are relevant to DPDPA, add a fourth question: if a data protection board review arrived tomorrow and required you to demonstrate access accountability for those controls as of today, how long would it take to produce that evidence?

The answers define the gap between your current compliance reporting architecture and what the frameworks you are audited against are starting to require. The Compliance Reporting API closes that gap at the data layer. The compliance score and control checkpoints are viewed at the monitoring layer. Evidence on demand is not the same as continuous visibility. But it is the starting point. 

See Akku PAM Compliance Capabilities  |  Talk to the Akku Team

Questions Security and Compliance Teams Ask About Compliance Reporting APIs

Q: What is the difference between a compliance reporting API and a GRC platform?

A: A GRC platform manages compliance workflows: control assignments, evidence uploads, risk registers, and audit scheduling. It depends on evidence being fed into it, either manually or through integrations. A compliance reporting API is an evidence source. It produces structured, audit-ready data from live system state that can be fed into a GRC platform, a SIEM, or a custom dashboard without manual extraction. The two are complementary. The GRC platform is where compliance is managed. The reporting API is where the underlying evidence comes from. For teams that already have a GRC platform but are manually extracting evidence to feed it, the API addresses the extraction step, not the management layer.

Q: Which specific ISO 27001:2022 Annex A controls does the Compliance Reporting API produce evidence for?

A: The API produces evidence relevant to A.8.15 (Logging), which requires that user activity and security event logs are produced, stored, and analysed. It produces evidence for A.8.16 (Monitoring Activities), which requires ongoing monitoring for anomalous behaviour. It supports A.5.15 (Access Control) and A.5.18 (Access Rights) through the authentication event and provisioning record output. GPO configuration data supports controls in the A.8 group that require specific system hardening and configuration baseline management. The full control-to-evidence mapping for Akku’s compliance capabilities is documented on the Akku compliance use case page. 

Q: What does the DPDPA Rules 2025 compliance requirement mean practically for how authentication evidence is stored and produced?

A: Under DPDPA, data fiduciaries must implement technical measures demonstrating that access to personal data is controlled, reviewed, and removed when no longer required. At the evidence level, this means the access record needs to show who had access, when access was granted, under what authorisation, and when it was removed. The access record needs to be producible on demand, not assembled when requested. The Compliance Reporting API produces authentication event data that includes user identifiers, timestamps, and access patterns in structured JSON. For organisations currently relying on manual log exports to satisfy DPDPA obligations, the shift to API-based evidence production changes the response time from days to seconds.

Q: How does the API handle evidence for organisations managing multiple compliance frameworks simultaneously?

A: The API output is framework-agnostic. The same structured JSON covering authentication events, GPO configuration state, and threat detection events is relevant to ISO 27001, SOC 2, HIPAA, RBI, SEBI CSCRF, and DPDPA. The difference between frameworks is which specific fields and time windows the auditor focuses on, not which underlying data is required. For organisations that currently run separate evidence collection processes for each framework, the API output serves all of them from a single call.

Q: What is the latency between a system event occurring and it being available through the API?

A: Events are written to the Akku audit log in near-real-time as they occur. The API reflects the current audit log state with low query latency. For compliance reporting purposes, the API supports both on-demand queries and scheduled retrieval. For monitoring use cases where near-real-time event data is needed for SIEM detection rules, the API supports real-time streaming retrieval. The authentication event output is the same data that feeds the MFA Failures and Login Metrics APIs, both of which are designed for near-real-time consumption.

Q: How does the Compliance Reporting API fit into the broader Akku compliance architecture?

A: The reporting API is one layer of a three-layer compliance architecture in Akku. The compliance score and per-framework breakdown provide the executive summary layer: a continuously updated score across ISO 27001, SOC 2, HIPAA, GDPR, DPDPA, RBI, and SEBI CSCRF, exportable for board reports. The control checkpoints view is the operational layer: every control, its live pass or fail status, the evidence behind it, and the specific fix action where a gap exists. The reporting API is the integration layer: structured evidence output consumable by external GRC platforms, SIEM tools, and custom dashboards. For organisations implementing all three layers, compliance evidence stops being something assembled before audits and becomes a continuous operational data surface.

MFA Verified the User. Nobody Verified the Device.

Your user authenticated this morning. They presented the right credentials. They completed the MFA challenge. Your access control system granted the session.

Here is what your authentication stack evaluated during that process: the identity of the person requesting access.

Here is what it did not evaluate: the security posture of the device they used to request it.

Whether the device was enrolled in any management system. Whether the OS had been patched in the last four months. Whether endpoint protection was running. Whether the device had been compromised. Whether it was a personal phone with no corporate security policy applied to it at all.

For most MFA deployments, none of these questions is part of the authentication decision. And in environments with distributed workforces, BYOD, and high-turnover teams, that gap is not a minor implementation detail. It is a structural exposure that exists at scale, every day, across every session that passes through an authentication layer designed to verify identity, but not endpoint security posture.

Why MFA Is an Identity Assertion, Not a Device Health Assertion

This distinction is worth being precise about because it is frequently misunderstood at the architecture level.

When a user authenticates with an OTP-based second factor, whether TOTP through an authenticator app, SMS OTP, or a push notification, the verification confirms one thing: that the person authenticating has access to the enrolled second factor at that moment. It confirms possession of a device or account associated with the enrolled factor. It says nothing about the security state of the device making the authentication request.

Certificate-based device authentication is different. When a device certificate is presented during authentication, the certificate is issued to a specific enrolled device, and the authentication proves that the request originated from a device holding that certificate. This is closer to device verification, but it still does not confirm the current security posture of the device. A certificate-enrolled device can be compromised, out of compliance with OS patching, or running prohibited applications. The certificate is present. The device may not be safe.

Genuine device verification requires something different: a real-time check of the device’s compliance state against defined policy criteria at the point of every access request. Not a check that was performed during enrollment and cached. A current check at the moment of the session. This is the principle behind zero-trust access security applied specifically to the endpoint layer.

The Environments Where This Gap Is Most Consequential

The device verification gap matters everywhere, but it is most consequential in specific environments because of how work actually happens in them.

ITeS and BPO organisations handling client financial, healthcare, or legal data operate under contractual obligations that specify data handling requirements at the endpoint level. A client contract that requires corporate-managed devices for accessing client data is violated the moment a team member accesses that data from a personal, unmanaged phone, regardless of whether their authentication credentials are valid. The authentication layer does not enforce the contract. A device compliance check does.

The ITeS and BPO industry in India handles some of the most sensitive data in the world on behalf of international clients. The workforce is large, distributed, and high-turnover. Remote work is the default for many roles. The probability that a significant portion of daily access happens from unmanaged personal devices is not theoretical. It is the operational reality. This is precisely what making your BYOD policy more secure means in practice: not a stricter policy document, but a technical control that enforces the policy at the access layer.

Healthcare organisations accessing Electronic Health Records face DPDPA obligations around how patient data is accessed at the device layer. An unmanaged device with no remote wipe capability that accesses patient records creates a data protection exposure that MFA does not address. If that device is lost or stolen, the data accessed during its last session has no technical protection once the authentication session is closed. Remote Security and Data Wipe through Akku MDM allows IT to remove work profile data without affecting personal content, but only from devices that were enrolled and managed in the first place.

Financial services firms under RBI and SEBI oversight face specific endpoint security requirements in the frameworks governing their cybersecurity posture. Unmanaged devices accessing trading systems, customer account data, or financial records represent a documented compliance gap in an audit context.

What Device Compliance Verification Actually Requires at the Architecture Level

Closing the device verification gap requires the access decision to incorporate device state, not just identity state. At the architecture level, this means the session proxy or access control layer must be able to query the device management system for the current compliance status of the requesting device before granting access.

The check needs to evaluate specific, configurable criteria. Device enrollment status in the MDM system. OS version compliance against minimum requirements. Endpoint protection status. Screen lock policy compliance. Data transfer restrictions. These are not binary enrolled or not enrolled checks. They are policy-based compliance evaluations against criteria the organisation defines through Device and Access Policy Enforcement.

The access decision then reflects both identity verification and device compliance. An authenticated user on a non-compliant or unenrolled device is denied access, not because their identity is invalid, but because the device through which they are authenticating does not meet the policy requirements for the data they are trying to access.

How Akku MDM and AkkuReka Enforce This Together

Akku MDM provides the device management and compliance layer. Device enrollment, policy application, and compliance monitoring are managed centrally from a single console across Android and iOS devices. The platform enforces specific device policies, including passcode requirements, screen capture restrictions, camera and microphone governance, and USB and Bluetooth data transfer controls through Device and Access Policy Enforcement. Application governance is handled through App Governance and Whitelisting, ensuring users can only access approved applications on managed devices.

For BYOD environments, Work Profile Isolation separates corporate applications and data from personal applications on Android devices, with enforced boundaries that prevent cross-profile data movement. Corporate data remains under IT control even on personally owned devices. If a device is lost or compromised, Remote Security and Data Wipe allows IT to remove work profile data without affecting personal content.

The compliance verification connects directly into the AkkuReka session proxy and the broader Akku access control layer through the Security Hardening and Zero-Trust Posture framework. When a session is requested, AkkuReka evaluates identity through Akku IAM, device compliance through the MDM system, and contextual factors, including IP, location, and time of day, through Contextual Access Control. A device that fails the MDM compliance check is blocked before the session opens, regardless of whether MFA is passed.

The adaptive MFA layer adds behavioural anomaly detection on top of device compliance verification. The system evaluates the context of every access request against the user’s established patterns. When a request deviates from normal behaviour, such as a new device, an unexpected location, or an unusual time of day, the system escalates the authentication challenge even if the device is enrolled and compliant. Identity verification, device compliance, and contextual behaviour work together as a unified zero-trust verification chain rather than as independent checks.

The same policy engine governs both SaaS application access and privileged server access through Akku PAM. An employee authenticating to a business application and an administrator requesting a privileged server session both pass through the same device compliance check. The policy is consistent across the entire access surface. For teams that need to work from any location securely, the work from anywhere use case covers how device compliance enforcement integrates with the broader remote access security model.

For organisations building out a BYOD security posture, the BYOD security use case covers how device enrollment, work profile isolation, and policy enforcement work together in practice. For teams managing compliance obligations under GDPR, HIPAA, NIS2, or DORA alongside DPDPA, the compliance use case page covers how Akku’s controls map to each framework’s specific access and endpoint requirements.

The Questions Worth Asking About Your Current Setup

Look at the access requests that came through your authentication system in the last thirty days. For each one, answer honestly.

Do you know whether those requests originated from managed, enrolled devices or from personal devices with no corporate security policy applied?

If a device used to access corporate data in that period was lost or stolen today, what data accessed during its last session would be exposed, and what technical control would limit that exposure?

For your ITeS or healthcare teams accessing client or patient data from home: is there a technical mechanism verifying device compliance before access is granted, or is the BYOD policy a document that relies on user compliance?

If your organisation underwent a DPDPA or ISO 27001 audit next month and the auditor asked you to demonstrate that access to personal data is limited to compliant, managed devices, what evidence would you produce?

If any of those questions produced a gap rather than a clear answer, the device verification layer in your access architecture is carrying exposure that MFA alone is not designed to close.

See How Akku MDM Works | See How Akku Enforces Zero-Trust at Every Session | Talk to the Akku Team

Questions IT and Security Teams Ask About Device Verification and MFA

Q: Why does passing MFA not mean the device is secure?

A: MFA verifies identity. It confirms that the person authenticating has access to the enrolled second factor at that moment. It does not evaluate the security posture of the device making the authentication request. An OTP challenge confirms possession of an authenticator app or phone number. It says nothing about whether the device is enrolled in an MDM system, running a compliant OS version, protected by endpoint security software, or in a compromised state. Identity verification and device health verification are separate technical checks that require separate mechanisms.

Q: What is the difference between device enrollment status and device compliance status?

A: Enrollment status confirms that a device is registered in the MDM system and subject to management. Compliance status confirms that the device currently meets the specific policy criteria defined through Device and Access Policy Enforcement: OS version, passcode strength, endpoint protection active, and prohibited applications absent. A device can be enrolled but non-compliant if it has fallen out of policy since enrollment. Genuine device verification checks compliance state at the point of every access request, not just at enrollment.

Q: How does Work Profile Isolation protect corporate data on personally owned BYOD devices?

A: Work Profile Isolation on Android devices creates a separate, isolated container for corporate applications and data. Applications within the work profile cannot share data with personal applications. Copy and paste between profiles is restricted. Files from the work profile cannot be shared externally through personal applications. Corporate data remains under IT control within the work profile boundary. If the device is lost, IT can remotely wipe the work profile data through Remote Security and Data Wipe without affecting the user’s personal data.

Q: What happens technically when a non-compliant device attempts to access corporate resources through Akku?

A: When a session is requested, AkkuReka evaluates the compliance status of the requesting device through the MDM system as part of the zero-trust verification chain. If the device fails the compliance check, regardless of whether MFA passed, AkkuReka denies the session before it opens. The event is logged. No session is created. No data is accessible.

Q: What compliance frameworks specifically reference endpoint or device-level access controls?

A: ISO 27001 Annex A control A.6.2 covers mobile device policy and teleworking requirements, including device management. The RBI Cybersecurity Framework specifies endpoint security requirements for BFSI organisations. DPDPA requires data fiduciaries to implement appropriate technical measures to protect personal data, which regulators interpret as including endpoint controls for devices accessing personal data. HIPAA’s Physical Safeguard requirements at 45 CFR 164.310 include workstation use and device controls. Akku’s approach to meeting these requirements is covered on the compliance use case page.

Server Access Isn’t All-or-Nothing. The Organisations Treating It That Way Have a Problem.

When you give someone SSH access to a Linux server, what exactly have you given them?

Think about that carefully before answering. Because the instinct is to say “access to do the thing they were brought in to do.” But what the SSH session actually provides, absent any command-level restrictions, is an interactive shell with whatever privileges the account carries. That is not the same thing. Not even close.

A developer given SSH access to restart a service has, in the same session, the technical ability to read log files, navigate the file system, view running processes, install packages if the account permits it, modify configuration files, and run any command the system allows for that user. The restart-the-service use case is a one-liner. The SSH session is a general-purpose compute environment.

Most organisations know this is true and treat it as acceptable risk. This blog explains why that calculation is wrong, and what enforcing least privilege at the command level actually looks like technically.

Where the Principle of Least Privilege Stops Short in Most Environments

Least privilege is well understood as a principle and inconsistently applied as a control. At the application layer, role-based access control is reasonably mature in most organisations. Users have the permissions their role requires, and access is reviewed periodically. At the server layer, the model collapses.

The reason is architectural. SSH provides an authenticated shell. Once the shell opens, what the user can do is governed by the Unix permission model on the target system, not by any IAM policy. The IAM system verified the identity. It has no further influence over what happens inside the session.

This means privileged access management that stops at session authentication is not enforcing least privilege. It is enforcing authenticated access, which is a different and weaker control. If you want to understand the full scope of what PAM is supposed to cover, the PAM explained blog covers the complete framework, including where session-level controls fit within the broader privileged access architecture.

There are two common approaches organisations use to address this within the Unix permission model, and both have significant limitations in enterprise environments.

sudo policy files. Restricting commands through the sudoers file on each target server is technically viable but operationally brittle. Every change to the permitted command set requires an update to the sudoers file on every affected server. In environments with dozens or hundreds of servers, this creates a configuration management burden that leads to inconsistency. Servers end up with different policies because updates are applied inconsistently. Over time, the gap between what the policy says and what is actually enforced on each server grows.

The deeper problem is that sudoers management happens at the server layer, disconnected from the identity and access management system. When a user’s role changes or they leave the organisation, the sudoers entries do not automatically update. This is the same offboarding gap that automated provisioning and de-provisioning address at the application layer, but misses entirely at the server layer when PAM is not in place.

Restricted shells. Rbash and similar restricted shell environments limit certain operations within the shell itself. They are easy to escape in ways that are well documented, and they are not a serious control in environments where the user has any technical sophistication.

Neither approach gives you what you actually need: per-user, per-server command restrictions managed centrally, enforced at the session layer, and connected to your IAM system so that changes propagate automatically.

What Happens When the Restriction Model Breaks Down

The risk is not abstract. Consider a third-party vendor brought in to perform database maintenance on a production server. They need to connect to the database service, run specific diagnostic queries, and restart a process if needed. The IT team grants SSH access to the relevant server.

During the session, the vendor is working on the task they were given. But nothing technical prevents them from exploring the file system, reading application configuration files that may contain connection strings for other systems, viewing the contents of log files that include user activity or transaction data, or running commands outside the scope of their engagement.

Most vendors would not do this deliberately. But the risk is not primarily deliberate misuse. It is the combination of accidental exposure and the absence of any audit evidence that would surface it. If the session produces only a login and logout timestamp, there is no record of what was accessed or explored. The SMART Audit Trails capability in Akku PAM closes this specific gap, capturing every command executed during an SSH session with a precise timestamp. But audit trails tell you what happened after the fact. Granular Access Control prevents what should not happen in the first place.

When a compliance audit asks you to demonstrate that your third-party vendor had access scoped to their specific task, an SSH session with no command restrictions and no command-level audit log does not satisfy that requirement. Not under ISO 27001 Annex A.9, not under DPDPA’s data processor governance requirements, not under the RBI Cybersecurity Framework’s privileged access monitoring requirements. For manufacturing organisations managing contractor access to OT-adjacent systems, or financial services firms operating under SEBI’s CSCRF, this is a documented audit gap, not a theoretical concern.

What Command-Level Restriction Actually Requires at the Architecture Level

Effective command-level restriction needs to satisfy three technical requirements simultaneously.

The restriction must be enforced at the session layer, not the server layer. Configuration on the target server is operationally unsustainable at scale and disconnected from the IAM system. The session proxy is the correct enforcement point because it sees every command before execution and has access to the identity and policy context.

The restriction must be per user per server. The same user on different servers may require different permitted command sets. Different users on the same server may require different permitted commands. A flat policy that applies the same restrictions to everyone on a given server does not map to real operational requirements.

The restriction must be connected to the identity system so that policy changes, role changes, and offboarding propagate automatically without a separate remediation step at the server layer.

How Akku PAM Enforces This

Granular Access Control in Akku PAM allows administrators to define a permitted command list for each user on each SSH server, configured from the Akku Admin Console. Different users on the same server can have different permitted command sets. The same user on different servers can have different permissions.

Enforcement happens at the AkkuReka session layer. When the user executes a command inside the SSH session, it is checked against their permitted list in real time before execution on the target server. If the command is permitted, it executes normally. If it is not on the list, it is blocked at the point of execution, regardless of the user’s underlying system privileges on the server. This requires no agent on the target server and no changes to the server configuration.

Because enforcement happens at AkkuReka rather than the server layer, changes to permitted command lists propagate immediately across every server in scope. There is no sudoers file to update, no configuration management job to run, no inconsistency between servers.

SMART Audit Trails capture every command executed during the session, including every command that was attempted and blocked, with a precise timestamp. The combination of Granular Access Control and SMART Audit Trails provides two things neither delivers alone: technical enforcement of the intended access scope, and a complete logged record of how that scope was used. Both are exportable as compliance evidence for ISO 27001, RBI, DPDPA, SOC 2, and PCI-DSS requirements.

The just-in-time access layer adds another dimension on top of command-level restriction. Rather than granting standing SSH access that persists indefinitely, JIT access means elevated access is requested, approved through a configurable chain, granted for the duration of the task, and automatically revoked when the session ends. When you combine JIT access with Granular Access Control, the result is privileged access that is time-bounded, scope-bounded, and command-bounded simultaneously.

The security hardening and zero-trust posture layer applies across every session that AkkuReka governs: adaptive MFA, MDM device compliance enforcement, IP and location restrictions, and time-of-day policies. The same policy engine that governs access to your SaaS applications governs access to your servers. There is no separate security posture for infrastructure versus applications.

When an employee or contractor is offboarded from Akku IAM, their infrastructure access is revoked immediately through AkkuReka. The permitted command lists are irrelevant at that point because the session proxy will not open a session for a deprovisioned identity. There is no separate step at the server layer.

For organisations with third-party vendor access to production infrastructure, Granular Access Control enables a specific capability that is otherwise architecturally difficult to achieve: contractors and vendors can be given SSH access scoped precisely to the tasks they need to perform, with a technical boundary preventing them from exceeding that scope. This is directly relevant for ITeS and BPO organisations managing vendor access to client environments, and for manufacturing organisations where third-party maintenance contractors regularly need server access scoped to specific operational tasks.

Before You Move On

Pull the sudoers configuration from three production servers in your environment. For each server, answer these questions.

Does the current configuration accurately reflect the minimum commands each user requires for their current role, or does it reflect the configuration that was set up when the server was provisioned and has not been meaningfully reviewed since?

If a contractor completed their engagement six months ago and their account was disabled in Active Directory, do the sudoers entries on these servers still reference their account?

If a user exceeds their intended scope during an SSH session today, where in your current logging setup would that show up?

If the policy on these servers needed to change tomorrow, how many systems would you need to update manually, and how confident are you that the update would be applied consistently across all of them?

See How Akku PAM Granular Access Control Works | Talk to the Akku Team

Questions Infrastructure and Security Teams Ask About Command-Level Access Control

Q: Why is SSH access considered all-or-nothing even when role-based access control is in place at the application layer?

A: RBAC at the application layer controls what users can do within applications. SSH access operates at the operating system layer, below the application. Once an SSH session is open, the user has an interactive shell governed by Unix file permissions and sudo policies on the target server, not by any IAM policy. The IAM system verified the identity at the point of authentication and has no further influence inside the session. Least privilege at the application layer and least privilege at the server layer are two separate and independent controls.

Q: What are the limitations of using sudoers files to restrict commands?

A: The sudoers approach works in principle but fails operationally at scale. Every change to the permitted command set requires updating the sudoers file on every affected server individually. In environments with dozens or hundreds of servers, this creates configuration drift where the effective policy on each server diverges from the intended policy over time. Sudoers management is also disconnected from the IAM system, meaning that role changes and offboarding do not automatically propagate to server-level command restrictions. AkkuReka enforces command restrictions centrally at the session proxy layer, eliminating both the configuration drift problem and the IAM disconnection problem.

Q: How does command-level restriction differ from session recording?

A: Session recording captures what happened. Command-level restriction prevents what should not happen. Recording tells you after the fact that a user ran a command they were not supposed to run. Restriction blocks the command before it executes. SMART Audit Trails handle recording. Granular Access Control handles restrictions. Together, they provide enforcement plus forensic evidence.

Q: Does command-level restriction require installing an agent on target servers?

A: Akku PAM’s Granular Access Control does not require any agent on target servers and no changes to server configuration. Enforcement happens at the AkkuReka session proxy layer, which intercepts every command before it reaches the target server. The server receives only commands that passed the permitted list check.

Q: How are permitted command lists managed when contractors or third-party vendors need temporary access?

A: Permitted command lists are configured per user per server from the Akku Admin Console. For a contractor engagement, the administrator creates a list specific to that contractor on the specific servers they need to access. Just-in-time access can be layered on top, so the access is also time-bounded. When the engagement ends, and the contractor’s IAM identity is deprovisioned from Akku IAM, AkkuReka stops opening sessions for that identity immediately. No separate cleanup of server-level configurations is required.

Your Server Credentials Are a Liability. Most IT Teams Already Know It.

When did you last rotate the root password on your most critical production server?

Not when it was scheduled. Not when the policy says it should have been. When it actually happened, with a documented record, and with every system that depended on that credential updated at the same time.

If that question made you pause, you are not alone. And the pause itself is the problem, because an attacker or an auditor is not going to wait for you to work out the answer.

Most infrastructure teams carry this risk quietly. Not because they are careless, but because the operational cost of rotating credentials manually across a production environment is high enough that it gets deferred, and deferred again, until the password that was set during initial provisioning is still running in production two years later.

This blog covers what that actually means at the infrastructure layer, where the failure modes are specific, where they hide, and what it takes to close them properly.

The Three Ways Static Credentials Fail, and None of Them Are Obvious Until Something Goes Wrong

SSH keys that outlive the people who hold them. Disabling an Active Directory account does not revoke SSH access on Linux servers. The two authentication systems operate independently. The server’s authorized_keys file holds public keys that are trusted for connection regardless of whether the corresponding identity is active in any directory service. Unless the public key is explicitly removed from authorized_keys on every target server, a former employee’s SSH key remains valid indefinitely after their AD account is disabled.

In environments with dozens or hundreds of servers, this removal step is almost never done consistently. The result is a standard offboarding process that appears complete, AD account disabled, email deactivated, VPN revoked, while SSH access to production infrastructure persists untouched. This is exactly the kind of gap that automated provisioning and de-provisioning is designed to eliminate, but only when the provisioning system is connected to the infrastructure access layer, not just the application layer.

Service account passwords embedded in configuration files. Database connection strings, API service accounts, and application configuration files frequently contain static credentials. Rotating them requires updating every instance simultaneously, testing that nothing breaks, and coordinating a deployment. The operational cost is high enough that most teams do it infrequently. The password that was set during the initial deployment is often the password running in production three years later, embedded in config files across multiple servers, known by everyone who has ever touched the deployment pipeline.

Jump server credential passthrough. In environments using a bastion host, the jump server frequently holds static credentials to target systems. The user authenticates to the jump server, and the jump server authenticates to the target using credentials stored in its own configuration. From the user’s perspective, access appears controlled. From a security perspective, the target credentials exist in plaintext in the jump server’s configuration, accessible to anyone who can extract them from memory during an active session or read them from the configuration store directly.

What a Credential Compromise Looks Like From the Inside, and Why It Is Hard to Detect

The incident does not start with an alert. It starts with an anomaly. A dataset that looks wrong. A configuration file that has been modified. A process running that was not there yesterday.

The investigation team pulls the access logs. They have authentication events: timestamps, source IPs, and session durations. What they do not have is command-level attribution within sessions. They can establish that a specific service account authenticated to a server during a specific window. They cannot establish what that account did once the session opened, because the logging was never configured at that depth.

This is the visibility gap that SMART Audit Trails address directly. Every SSH command executed during a privileged session is captured with a precise timestamp, automatically, tamper-proof, and searchable. But that audit trail only exists if the session ran through a governed proxy. Static credentials used through a jump server or direct SSH connection produce no such record.

The investigation then tries to attribute the service account to a specific individual. This is where static shared credentials produce their most damaging consequence. When a password has been held by multiple people over time, with no rotation log to establish which version was active at any given moment, the attribution chain collapses. The investigation cannot prove who was responsible. It cannot prove that an unauthorised party was involved either. It produces no conclusion.

For regulated organisations, this is not just an operational failure. The RBI Cybersecurity Framework requires privileged access monitoring and audit trails that support forensic investigation. DPDPA requires data fiduciaries to demonstrate accountability over access to personal data. ISO 27001 Annex A control A.9.4 requires that access to privileged utility programs is restricted and controlled. An inconclusive investigation is evidence that none of these controls were operating effectively.

What Actually Fixing This Requires at the Architecture Level

The answer is not a stricter password policy. A policy requiring 90-day rotation on a 200-server estate still depends on a person doing the work, updating every dependent system, and documenting the change. It fails the moment the person is unavailable, the process is skipped, or the dependency map is incomplete.

Closing this gap requires three things to be true simultaneously.

Credentials must be stored in a central encrypted vault with no local copies, no configuration file embeddings, and no human-readable form outside the vault itself. Every retrieval event must be logged.

Rotation must be automated and independent of human scheduling. The credential changes on a defined interval. The vault stores the new value. Every system that needs the credential retrieves it from the vault at runtime rather than holding a cached copy.

Credential injection must happen at the session layer, not the user layer. This is the architectural distinction most credential management tools miss. Giving a user a rotated password from a vault still gives the user a password. They can copy it, photograph it, or retain it after rotation. True credential security requires that the user never receives the credential at all. The zero-trust session proxy injects it directly into the connection at the protocol layer. The user connects. The credential exchange happens between the proxy and the target system. The user never sees it.

When these three layers work together, the credential never exists in human-accessible form at any point in the session lifecycle. This is the architecture behind enforcing zero-trust access security at the infrastructure level.

How AkkuArka and AkkuReka Implement This

AkkuArka is the credential vault and rotation engine at the core of Akku PAM. Every privileged credential across the infrastructure, server passwords, SSH keys, database credentials, service account passwords, is stored and encrypted centrally. There is no local credential storage, no per-server password management, and no credential distribution to endpoints.

Rotation is automated on a configurable schedule. When rotation runs, AkkuArka generates the new credential, updates the target system, stores the encrypted value in the vault, and invalidates the previous credential. No IT intervention required. No deployment coordination. No risk of a partially updated environment where some instances still hold the old credentials.

For database access, AkkuArka goes further than password rotation. Rather than rotating a shared service account password, it generates a unique throwaway user for every single database session. For PostgreSQL, MySQL, and MongoDB, a new role is created at the point of the access request, scoped with the minimum permissions required for that session. When the session closes, the role is dropped. There is no persistent shared database credential in any form. Every session is isolated by design. This is what just-in-time access looks like applied to credentials, not just sessions.

AkkuReka is the zero-trust session proxy that handles credential injection. When an administrator requests a session, AkkuReka verifies identity through Akku IAM, checks device compliance, evaluates contextual access policies including IP, location, and time of day, and checks approval status if a just-in-time workflow is configured. Only when all conditions are satisfied does AkkuReka open the session.

The credential injection happens at the protocol layer within AkkuReka. For SSH sessions, AkkuReka handles key injection transparently. The administrator opens a browser-based terminal through AkkuReka. The connection to the target server uses credentials retrieved from AkkuArka and injected into the SSH handshake. The administrator never sees the key. Every command executed in the session is captured with a precise timestamp through SMART Audit Trails, tamper-proof and searchable by user, command, server, or time window.

The offboarding gap closes automatically. When an employee is offboarded from Akku IAM, their access to all privileged systems is revoked at that moment. Because access is mediated through AkkuReka rather than direct SSH key authentication, removing the IAM identity terminates infrastructure access immediately. The authorized_keys file on target servers does not need individual updates. There is no window between HR offboarding and IT revocation where a departing employee retains live access.

This matters particularly for manufacturing organisations managing contractor access to OT-adjacent systems and financial services firms where RBI and SEBI audit obligations require documented credential lifecycle management. In both cases, the risk of a former employee or contractor retaining active server credentials is a compliance finding, not just a security concern.

If you want to understand how privileged access management fits into the broader infrastructure security framework, the PAM explainer on the Akku blog covers the full architecture in detail. For teams managing PAM across cloud and hybrid environments, specifically, the PAM in cloud and hybrid environments blog covers the deployment considerations that apply across mixed infrastructure estates.

The Four Questions Worth Asking Before You Move On

Pick your three most critical production servers and answer these honestly.

Can you produce a documented rotation record for every credential used to authenticate to these servers in the last ninety days?

For every authentication event in that period, can you show command-level attribution, not just which account connected, but what that account did inside the session?

If a former employee who left in the last twelve months attempted to authenticate using SSH keys they held before their departure, would the attempt succeed?

Are any service account passwords embedded in configuration files on these servers currently shared with other systems or individuals?

If any of those produced an uncertain answer, the gap between your current posture and what a forensic investigation or compliance audit requires is not theoretical. It is live, right now, in your infrastructure.

See How Akku PAM Works | Talk to the Akku Team

Questions Infrastructure and Security Teams Ask About Server Credential Management

Q: Why does disabling an Active Directory account not revoke SSH access to Linux servers?

A: SSH key-based authentication on Linux servers operates independently of Active Directory. The server’s authorized_keys file holds public keys trusted for authentication regardless of whether the corresponding identity is active in any directory service. Unless the public key is explicitly removed from authorized_keys on every target server, or unless SSH access is gated through a proxy like AkkuReka that enforces IAM state in real time, a disabled AD account does not affect SSH connectivity. This is the most common and least-discussed credential persistence gap in hybrid infrastructure environments.

Q: What is the technical difference between rotating a database password and using per-session throwaway users?

A: Password rotation changes a shared credential on a schedule. Every application, script, and service connecting to the database using that credential must be updated simultaneously, or the connection fails. Throwaway users solve the problem at a different layer. A unique database role is created for each session with permissions scoped to that task, then dropped when the session closes. For PostgreSQL, MySQL, and MongoDB, AkkuArka handles role creation and expiry automatically at the point of each session request.

Q: How does credential injection work at the SSH protocol layer without the user seeing the key?

A: When a session is opened through AkkuReka, the session proxy handles the SSH handshake to the target server directly. AkkuReka retrieves the current credential from AkkuArka, uses it to authenticate to the target on behalf of the session, and presents the user with a proxied terminal connection. The credential is used in the protocol exchange between AkkuReka and the target server. It is never transmitted to the user’s endpoint and never appears in the user’s session context.

Q: How are service account passwords embedded in application configuration files handled?

A: AkkuArka addresses this by becoming the credential source at runtime rather than at deployment time. Instead of embedding a static password in a configuration file, applications retrieve the current credentials from AkkuArka at the point of connection. When AkkuArka rotates the credential, the application automatically retrieves the new value on its next connection attempt. There are no stale configuration files holding old credentials, and no coordinated deployment is required when rotation occurs.

Q: What compliance frameworks specifically require privileged credential management controls?

A: ISO 27001 Annex A control A.9.4 requires restriction and control of access to privileged utility programs, including credential management. The RBI Cybersecurity Framework requires privileged access management controls covering credential governance and audit trails for scheduled commercial banks. DPDPA requires data fiduciaries to implement appropriate technical measures to protect personal data. SOC 2 Trust Services Criteria CC6.1 through CC6.3 cover logical access controls, including privileged account management. PCI-DSS Requirement 8 specifies rotation intervals and shared credential prohibitions. Akku PAM is built to satisfy all of these. See the compliance coverage on the Akku PAM page for the full breakdown.

Is Your PAM Solution Built on a Remote Desktop Gateway?

If you are currently evaluating Privileged Access Management solutions, there is a question worth asking the vendors in your shortlist: what is this product actually built on?

Not every PAM solution on the market was built from the ground up as a PAM platform. Some are remote desktop gateways with PAM features bolted on. Some are built on top of open-source tools like Apache Guacamole, a browser-based access gateway that was never designed for privileged access management.

That distinction matters more than most buyers realise. Here is why.

What Apache Guacamole Actually Is

Apache Guacamole is a free, open-source, clientless remote desktop gateway maintained by the Apache Software Foundation. It allows users to access servers via SSH, RDP, VNC, and Telnet through a web browser, with no client software installed.

It is a well-built tool for what it was designed to do: give administrators browser-based access to infrastructure without a VPN. Many IT teams deploy it as a jump server or bastion host. At zero licensing cost, it is an attractive starting point.

But it is a starting point, not a destination for organisations with real security or compliance requirements.

The Problem With Calling It PAM

The term Privileged Access Management describes a specific set of security controls: dynamic credential management, session approval workflows, adaptive multi-factor authentication, compliance-ready audit trails, and least-privilege enforcement. These are the capabilities auditors look for when they assess your PAM posture for SOC 2, ISO 27001, PCI-DSS, RBI, or DPDPA.

Apache Guacamole provides none of these natively.

It records sessions. It logs who connected and when. It can integrate with LDAP for authentication. But credentials are stored statically in its connection configuration, meaning someone in your IT infrastructure knows the actual server password, or it exists in a file that could be accessed. There is no credential vault that generates dynamic, per-session credentials. There is no approval workflow that stands between a user’s request and the target server. There is no adaptive MFA that escalates when a login comes from an unfamiliar device.

This is not a criticism of Guacamole. It was not designed to be a PAM platform. The issue arises when a product built on Guacamole is sold as one.

What a Gateway-Based ‘PAM’ Cannot Do

Credential Security

In a genuine PAM platform, users never see or handle the target credentials. The platform generates a unique, short-lived credential for each session, injects it silently into the proxied connection, and destroys it when the session ends. There is nothing to leak because there is nothing the user ever knows.

In a Guacamole-based solution, credentials are pre-configured and stored statically. The system passes them through, but they exist in a form that can be accessed, extracted, or exposed. Password rotation is manual. A departing administrator who knew a server password still knows it after you delete their account from the gateway.

Session Governance

A PAM platform includes a session approval workflow: a user requests access, an administrator reviews and approves, and only then does the session open. This provides a human checkpoint for every privileged action on critical infrastructure.

Guacamole has no approval workflow. A user with connection access connects immediately. The audit trail tells you what happened, but nothing prevented it from happening.

Database Access

Guacamole does not support database sessions at all. For organisations where database administrators access PostgreSQL, MySQL, or other systems, a Guacamole-based solution provides zero visibility into what SQL queries were executed during a session, a direct gap in any audit that asks for database activity logs.

A purpose-built PAM platform proxies database sessions and captures every query, timestamped and structured, alongside the session recording.

Compliance Evidence

When an auditor asks for evidence of privileged access controls, they are looking for dynamic credential management, session approval records, searchable audit trails, and adaptive MFA. Guacamole can provide a session recording and a connection log. It cannot provide the rest.

For teams pursuing SOC 2, ISO 27001, PCI-DSS, or India’s RBI Cybersecurity Framework and DPDPA requirements, this gap requires additional tooling, tooling that typically costs more than a purpose-built PAM platform would have in the first place.

How to Tell What You Are Actually Buying

When evaluating a PAM solution, ask these questions directly:

  • Does the platform generate dynamic, per-session credentials, or does it store static credentials in connection configuration?
  • Do users ever see, know, or handle the actual target password, or is credential injection completely invisible to them?
  • Is there a session approval workflow where a human must explicitly authorise access before a session opens?
  • Does the platform proxy database sessions (MySQL, PostgreSQL) and capture SQL query logs, or only SSH and RDP?
  • Is MFA adaptive, does it escalate based on device, location, IP, or time, or is it binary on/off?
  • If you remove a user from the identity platform, is their access to all privileged systems revoked immediately, or does the gateway need to be updated separately?

If the answers reveal a gateway with credential pass-through and no approval workflow, you are looking at infrastructure access tooling, not a PAM platform.

What Akku PAM Is Built On

Akku PAM was designed from the ground up as a Privileged Access Management platform, not adapted from a remote desktop gateway. It is built around two purpose-built components.

AkkuArka is the credential vault. It generates a unique credential for each privileged session, server passwords, database users, SSH keys, at the moment access is requested. When the session ends, the credential expires. There are no static passwords in configuration files. There is nothing for a user to know or leak.

AkkuReka is the session proxy. Every privileged connection, SSH, RDP, database, Kubernetes, passes through AkkuReka. Before a session opens, AkkuReka verifies the identity, the device, the location, the IP, the time of day, and the approval status. The session is recorded end to end. Every SSH command, every SQL query, every RDP action is captured, timestamped, and stored in SMART Audit Trails, tamper-proof and fully searchable.

The result is a privileged access architecture where users connect to critical systems without ever knowing the password, every session requires explicit verification, and every action leaves a complete, searchable audit trail.

For organisations with compliance obligations, or for IT teams that simply want to know, with certainty, what is happening on their infrastructure, that is the difference between a remote desktop gateway and a PAM platform.

The Bottom Line

Apache Guacamole is a capable, free, open-source tool. If browser-based server access with basic session recording is all you need, and compliance, credential security, and audit trails are not requirements, it does its job.

But if a PAM solution is being positioned to you as meeting your compliance and security requirements, and it is built on or compared to a remote desktop gateway, the gap between what it promises and what it can actually prove in an audit is worth understanding before you sign.

Ask the six questions above. The answers will tell you what you are actually buying.

See How Akku PAM Works | Talk to the Akku Team

Questions We Hear Most From IT and Security Teams

Q: Is Apache Guacamole a PAM solution?

A: No. Guacamole is a remote desktop gateway. It provides browser-based access to servers but does not include a credential vault, dynamic credential generation, session approval workflows, or adaptive MFA. These define a Privileged Access Management platform.

Q: Can a Guacamole-based solution meet PAM compliance requirements?

A: Partially, and only with significant additional tooling. Guacamole provides session recording and a connection log, which satisfies some audit requirements. But dynamic credential management, session approval workflows, database session logging, and adaptive MFA require either purpose-built additions or a separate platform.

Q: What is the difference between a remote desktop gateway and a PAM platform?

A: A remote desktop gateway provides access to servers via browser or proxy. A PAM platform governs, records, and controls everything about that access: who approved it, what credentials were used, what actions were taken, and whether those credentials still exist after the session ended. The gateway gets you in. The PAM platform is accountable for what happens once you are.

Q: How does Akku PAM handle privileged session access?

A: Every privileged session passes through AkkuReka, which verifies identity, device, location, IP, and approval before opening the connection. AkkuArka generates a unique credential for the session, one the user never sees, and destroys it when the session ends. Every action is recorded and logged in SMART Audit Trails, searchable by user, command, system, or time window.

Q: Does Akku PAM require complex infrastructure like Guacamole?

A: No. Akku PAM deploys a lightweight worker near your target infrastructure. No Tomcat, no guacd, no database to manage. Most organisations are live within hours to a few days without specialist infrastructure expertise.

You Know Who Logged In. But Do You Know What They Did?

You probably think you know what your admins are doing on your servers. Here is what your logs are actually showing you.

A name. A timestamp. A session duration.

That’s it.

Forty-one minutes on a production server, and your audit trail tells you someone was there. It doesn’t tell you what they typed. What they changed. What they looked at. Whether they ran one command or fifty. Whether anything that happened in those forty-one minutes is the reason your environment looks the way it does today.

Sound familiar? It should, because this isn’t a rare edge case. It’s the default state for most IT environments, and most teams don’t realise it until something breaks and they go looking for answers that aren’t there.

Privileged session access log showing only login and logout timestamps for two admin users with no record of commands executed during the session.

Three Real Scenarios Worth Examining

Here are three scenarios. See if any of them have happened in your organisation.

Scenario one:

A contractor was brought in for a three-week infrastructure project. They were given SSH access to two production servers. The project ended, HR offboarded them, and their email was deactivated. Six months later, during a routine review, you find their SSH key is still live. You want to know how often they connected after the project ended and what they did. Your logs show connection events. That is all.

Scenario two:

Your senior DBA ran a maintenance job last Friday night. The session lasted two hours. Monday morning, a business team reports that a dataset looks wrong. Rows that should be there are not. You pull the logs. You can confirm the DBA was connected. You cannot see a single query they ran.

Scenario three:

A developer needed production access to restart a service. It was meant to take ten minutes. The session lasted forty-five. You approved the access, you can see the login and logout times, and you have no idea what else they did while they were in there.

None of these is hypothetical. These are the conversations happening in security post-mortems across mid-market organisations right now. And in each case, the team investigating the incident hits the same wall. They know who was there. They can’t tell you what happened.

Three privileged access scenarios showing a contractor SSH session, a DBA maintenance session, and a developer production session, each with captured login events but no record of commands run, queries executed, or actions taken.

The Root Cause Is Architectural, Not Operational

It’s not because your team isn’t doing their job. It’s because the tools most organisations use for infrastructure access were built for connectivity, not governance.

A VPN gets your admin to the network. A jump server creates a single pathway. Direct SSH authentication proves identity. None of these was designed to record what happens after the connection opens. They get the person in the room. They don’t watch what the person does inside it.

And honestly, for a standard user accessing a business application, that’s probably fine. The application itself logs activity. The scope of what they can do is bounded.

But privileged users are a different conversation entirely. A sysadmin on a production server can modify configurations, delete files, install scripts, change permissions, and exfiltrate data, all in a single session. A DBA with direct database access can run queries that touch millions of records. A DevOps engineer with Kubernetes access can make changes that won’t surface as problems for days.

The result? Privileged account security is the most under-governed area in most IT environments. You have more documented visibility into what a junior analyst does in your CRM than into what your most trusted infrastructure admins do on your most critical systems.

That’s not a comfortable thing to sit with.

Where the Absence of Session Visibility Becomes a Business Risk

Post-incident investigations:  Something breaks. You need to know what changed and when. Without command-level logs, you are working backwards from symptoms. What should take an hour takes days. Sometimes you never find the answer. And ‘we can see someone was logged in, but we don’t know what they did’ is not an acceptable conclusion when you are explaining an incident to leadership or a regulator.

Compliance and audit requirements:  Whether your obligations sit under ISO 27001, RBI’s Cybersecurity Framework, SEBI’s CSCRF, HIPAA, or India’s DPDPA, the requirement is consistent. You need to be able to demonstrate what privileged users did, not just that they authenticated. ‘We have login records’ gets you through the basic check. It does not satisfy a forensic audit. Auditors are getting better at knowing the difference.

Insider threat detection:  This one’s uncomfortable but worth saying plainly. Your most dangerous insider threat isn’t someone trying to break in from outside. It’s someone who already has legitimate access and uses it in ways they shouldn’t. Detecting that requires knowing what normal behaviour looks like for each privileged user, and building that baseline is impossible if you’re not logging what they do in every session. Right now, if an admin is misusing their access, you might find out eventually. But you won’t find out from your logs.

What Session-Level Accountability Looks Like in Practice

Privileged session monitoring, done properly, operates at a level below authentication events. It captures what happens inside the session itself.

For SSH sessions, that means every command is logged individually with a precise timestamp, automatically, with no setup required on the target server. You can search it later by user, by command, by server, or by time. If something changed, you can find out exactly when and exactly what was run.

Akku PAM SMART Audit Trails interface showing a timestamped SSH command log with every command captured automatically and searchable by user, server, or time window.

For RDP sessions, it means full session recording, a video-playback record of what happened on screen during the session. No more guessing. No more reconstructing from system logs that weren’t built for forensic investigation.

For database access, it means query logging. Every query, every session, every user. That Friday night maintenance job? You’d have a complete record of every statement that ran.

This is the difference between knowing someone was in the room for forty-one minutes and knowing what they did in every minute of it.

Akku PAM is built on this model, where no privileged session reaches your infrastructure unrecorded. But the more immediate question is whether your current setup can answer what we are about to ask.

A Practical Diagnostic for Your Current Environment

Pick any privileged session from the last thirty days in your environment. A sysadmin on a server, a DBA on a database, and a contractor who was given temporary access.

Now answer these:

  • What commands did they run?
  • What files did they access or change?
  •  Can you produce a timestamped record of every action they took during that session?

If you’re hesitating on any of those, your audit trail ends at the login event. You know the door opened. You don’t know what happened inside.

That’s the gap. And now you know it’s there. 

Complete session visibility across SSH, RDP, and database access. Every command. Every query. Every action. Recorded automatically, searchable instantly, ready for the moment you need it.

See How Akku PAM Works | Talk to the Akku Team