Description
The tenant-wide app management policy enforces a maximum lifetime of {{ app_secret_max_days }} days for password credentials (client secrets) on applications and service principals. Secrets that already exist with a longer lifetime are tracked and replaced (CB-M365-APPS-010).
Rationale
Where secrets cannot be avoided yet (CB-M365-APPS-006 exceptions, or existing applications), a short lifetime limits how long a leaked secret can be used and forces regular rotation, which also keeps the list of people who know the secret current.
Impact
Teams that manage applications with secrets must rotate them at least every {{ app_secret_max_days }} days. Plan rotation reminders, for example with the Entra recommendation on expiring credentials.
Setting
| Location | Entra admin center > Entra ID > Enterprise apps > Application policies > Restrict max password lifetime (Graph policies/defaultAppManagementPolicy, passwordCredentials restriction passwordLifetime) |
| Default | Not configured |
| Recommended | On, at most {{ app_secret_max_days }} days, applies to all applications |
Parameters
| Parameter | Baseline | Hardened | Bounds |
|---|---|---|---|
app_secret_max_daysinteger, days. Maximum lifetime of a new client secret. | 180 | 180 | 1 to 180 |
The value used is your override (tailoring file), else the profile's, else the one of the profile it extends, else the default. Bounds limit what an override may set.
Audit
- Sign in to the Microsoft Entra admin center (https://entra.microsoft.com) as at least a Global Reader.
- Browse to Entra ID > Enterprise apps > Application policies.
- Check that the password lifetime restriction is On, set to at most {{ app_secret_max_days }} days, and applies to All applications.
- Alternative with Graph (scope
Policy.Read.All):GET https://graph.microsoft.com/v1.0/policies/defaultAppManagementPolicy. Check thatisEnabledistrueand thatpasswordCredentialsin bothapplicationRestrictionsandservicePrincipalRestrictionscontainspasswordLifetimewithstate=enabledandmaxLifetimeof at mostP{{ app_secret_max_days }}D. - Fail if the restriction is missing, disabled, longer than {{ app_secret_max_days }} days, or set for only one of the two object types.
Remediation
- Sign in to the Microsoft Entra admin center as a Security Administrator together with Application Administrator or Cloud Application Administrator.
- Browse to Entra ID > Enterprise apps > Application policies and open the password lifetime restriction.
- Set it to On, enter a maximum lifetime of {{ app_secret_max_days }} days, set Applies to to All applications and select Save.
- Graph alternative (scope
Policy.ReadWrite.ApplicationConfiguration):PATCH https://graph.microsoft.com/v1.0/policies/defaultAppManagementPolicyadding{"restrictionType": "passwordLifetime", "state": "enabled", "maxLifetime": "P{{ app_secret_max_days }}D"}topasswordCredentialsfor applications and service principals, keeping existing restrictions.
Rollback
Set the password lifetime restriction to Off or raise the maximum lifetime.
References
- Configure restrictions on how applications can be configured Microsoft, vendor-doc, accessed 2026-10-24
- tenantAppManagementPolicy resource type Microsoft, vendor-doc, accessed 2026-10-24
Mappings
| Framework | ID | Relation |
|---|---|---|
| NIST SP 800-53 Rev. 55.1.1 | IA-5 | related |
| NIST SP 800-53 Rev. 55.1.1 | IA-9 | related |
| CISA SCuBA Microsoft 365 Secure Configuration Baselines2.0.0 | MS.AAD.5.6v1 | equivalent |
How this control relates to the other framework's: equivalent, stricter, looser, partial or related.
Threats mitigated
| Taxonomy | ID |
|---|---|
| MITRE ATT&CK | T1552.001 |
Related controls
- related
CB-M365-APPS-006Block new password credentials on applications - related
CB-M365-APPS-009Limit the lifetime of application certificates
People and lifecycle
| Authors |
|
| Introduced in | v0.1.0 |
| Created, updated | 2026-10-24, 2026-10-24 |
| Translations | fr |