How to implement a Zero Trust architecture with least-privilege access, starting from identity management

LoginMaster team

A Zero Trust architecture with least-privilege access is implemented from identity in three moves: bring every login onto a single decision point (an IAM platform integrated via SDK or REST API, with SSO and MFA), reduce every identity — human and non-human — to the permissions it needs per tenant and project, and make revocation immediate and measurable. With LoginMaster, segmentation already happens at the identity layer: every tenant and project has its own cryptographic keys, every token carries a double signature (Tenant and Cloud), and not even the vendor is a trusted party, because personal data stays on the customer's tenant.

This is the hands-on guide. For the definition of the model and its principles start from what is Zero Trust; for the product controls see Zero Trust with LoginMaster.

Why start from identity rather than the network

Zero Trust initiatives that start from the network (microsegmentation, ZTNA, VPN replacement) often stall on the same question: "who, exactly, is the entity requesting access, and what should it be allowed to do?". If the answer lives in ten applications with ten different user bases, no network component can make a correct decision. The practical starting point is therefore the identity control plane: one place where identity is verified, context is known and policy is declared.

  • Compromised credentials remain one of the most frequent initial access vectors: an identity control neutralises them regardless of the network they come from.
  • Remote work, SaaS and external partners have already moved requests outside the perimeter: identity is the only attribute that travels with every request.
  • Least privilege is by definition a property of identities and roles, not of IP addresses.
  • NIS2 (Art. 21) and ISO/IEC 27001:2022 (controls 5.15-5.18 and 8.5) require evidence on access control, identity management and secure authentication: starting from identity also produces the audit evidence.

The references: NIST SP 800-207 and CISA ZTMM 2.0

NIST SP 800-207: the seven tenets as identity requirements

NIST Special Publication 800-207 (August 2020) defines the reference architecture: a Policy Decision Point (Policy Engine + Policy Administrator) that decides, and a Policy Enforcement Point that enforces the decision in front of the resource. In the "identity-driven" approach the document describes, the PDP is largely the IAM platform. The seven tenets, read from the identity angle:

NIST SP 800-207 tenetWhat it means for identityConcrete requirement
1. All data sources and services are resourcesInternal APIs, MQTT queues and admin consoles also need access controlEvery application integrated with the IAM via SDK or REST API, no exception for internal tools
2. All communication is secured regardless of network locationBeing on the LAN grants nothingTokens verified on every request, TLS on internal traffic too
3. Access is granted per sessionTrust is not inherited from the previous sessionSession duration per project, server-side revocation
4. Access is determined by dynamic policyThe decision depends on who, what and in which contextStatic policies per tenant, project and role, declared and versionable; real-time risk signals come from other layers (network, endpoint)
5. Asset integrity and posture are monitoredDevices and workloads are verified subjects tooDedicated device and service identities, individually revocable credentials
6. Authentication and authorisation are dynamic and enforced before accessNo "provisional" access pending verificationMFA before the session is granted where it is mandatory
7. Information is collected to improve postureIdentity events feed improvementIdentity events collected and analysed (native SIEM connector on the roadmap)

CISA Zero Trust Maturity Model 2.0: where you are on the Identity pillar

The CISA maturity model (version 2.0, April 2023) organises Zero Trust into five pillars — Identity, Devices, Networks, Applications and Workloads, Data — with three cross-cutting capabilities (Visibility and Analytics, Automation and Orchestration, Governance) and four stages: Traditional, Initial, Advanced, Optimal. Use it as a self-assessment before planning, not as a compliance checklist.

Area (Identity pillar)TraditionalInitialAdvancedOptimal
AuthenticationPasswords, occasional MFAMFA on administrators and remote accessPolicy-based MFA on all applications, federated SSOContinuous verification, phishing-resistant factors everywhere
Identity storesOne user base per applicationPartial consolidation on an IdPCentralised identities, federation with partnersUnified identities for humans and non-humans, governed from one plane
Risk assessmentNoneManual static rulesContext policies (role, resource, session)Automated, continuous risk assessment
Access managementStanding privileges, manual revocationRoles defined but broadLeast privilege per resource, time-limited sessionsAutomated just-in-time and just-enough access
Visibility and analyticsUncorrelated local logsCentralised logs for some applicationsCentralised, correlated identity eventsContinuous analysis with automated response

Phase 1 (days 0-30) — Visibility and a single decision point

Inventory: the identities nobody has counted

The inventory is not a spreadsheet of employee names. For each application you need four facts: who accesses it, with which type of credential, with which effective privileges, and which owner can say whether those privileges are still justified.

Identity categoryWhere it hidesQuestion to ask
EmployeesCorporate directory, local application accountsIs there a local account that bypasses SSO?
Contractors and consultantsHand-made accounts that never expiredWhich contract still justifies this access?
AdministratorsShared "admin", root and break-glass accountsWho knows the password and when was it last used?
Service accountsConfig files, environment variables, CI/CD pipelinesIs this key used by a single service? Can it be revoked without breaking anything else?
IoT devicesKeys hard-coded in firmware, certificates shared across batchesDoes one compromised device expose the credentials of the whole fleet?
AI agentsDevelopers' personal tokens reused by agentsDoes the agent act with a person's privileges instead of its own?

Centralised login via SDK and REST API

The first concrete result is that no application verifies a password on its own any more: authentication, second factor and policy are delegated to the IAM platform, which returns a signed token to the application. In LoginMaster every application is a project with independent security configuration on the tenant's shared user base, integrated with the official TypeScript and .NET SDKs or via REST API. For employees, SSO with Microsoft Entra ID or Google Workspace over OAuth 2.0 / OpenID Connect keeps the corporate directory as the source of truth: the procedure is in the guide to SSO with Entra ID and Google Workspace.

Mandatory MFA for administrators from day one

You do not need to wait for the role model to protect the highest-impact accounts. Make TOTP 2FA mandatory on administration projects and privileged roles, with an enrolment grace period: those who are not compliant by the deadline can be deactivated. In LoginMaster, once a user has enabled the second factor, no administrator can turn it off: this is the control that shuts down social engineering against the helpdesk. The operational detail is in the guide to TOTP and conditional access on internal apps.

Phase 2 (days 30-90) — Least privilege and identity segmentation

The role model: deny by default, per tenant and per project

Least privilege almost always fails for the same reason: you start from the permissions people have today and try to remove some. The method that holds is the opposite: every role starts with zero permissions and receives only those justified by a documented activity. Three design rules:

  1. 1Roles bound to the project, not global: 'operator' on the billing project is not 'operator' on the production project. In LoginMaster roles live in the tenant and project context, and a user linked to one project does not see the others.
  2. 2Explicit separation of duties: whoever approves a payment does not execute it, whoever manages users does not administer keys. List incompatible role pairs and check them at every assignment.
  3. 3Few, well-named roles: a model with more roles than people is a model nobody will ever recertify.
Role (example)ContextPermissions2FASession
Tenant administratorTenantManages projects, policies and users; no access to users' passwords, email or second factorMandatoryShort
Project administratorSingle projectProject configuration, project rolesMandatoryShort
OperatorSingle projectApplication operations, no user managementMandatory on critical projectsMedium
Read-onlySingle projectViewingOptionalLong on non-critical projects
External consultantOne project, time-boundLimited to the engagementMandatoryShort

A detail that matters in audits: in LoginMaster the administrator is not all-powerful. No administrator can read or set a user's password, email or second factor, and access recovery goes through a recovery code held by the user plus an approved request. That is least privilege applied to the people who run the platform too. The stated trade-off: without administrative reset, account recovery is slower. Details on access governance.

Conditional access: the signal → decision table

Zero Trust requires every access to be decided by policy. The practical question is which conditions the policy uses. In LoginMaster risk is expressed through static, declared policies on tenant, project and role — TOTP 2FA disabled, optional or mandatory, plus session and lockout parameters — not through a risk score computed in real time: every decision is explainable and auditable. This is what you configure today:

Configured policyConditionDecision
Project + rolePrivileged role on a critical projectMandatory TOTP step-up, even with an active SSO session
Project + roleRead-only role on a non-critical projectAllow; 2FA optional
2FA enrolment statusMandatory policy, grace period expired without enrolmentDeny / deactivate the user
Email domainDomain not authorised for sign-up in the tenantDeny sign-up
SSO providerProvider not enabled for the projectDeny login with that provider
Failed attemptsThreshold exceeded within the time windowTemporary account lockout
Session ageProject's maximum duration exceededRe-authenticate
Token contextToken issued for another tenant or projectDeny: cryptographic validation fails
Token statusSession revoked (logout, offboarding)Deny: token blacklisted server-side

To keep policies reviewable, write them as a matrix before configuring them. The following example is illustrative pseudocode, not the product's configuration format:

Policy matrix (pseudocode)
tenant: acme
projects:
  deploy-console:   { criticality: high, session: 15m, max_attempts: 5 }
  billing:          { criticality: high, session: 1h,  max_attempts: 5 }
  internal-wiki:    { criticality: low,  session: 8h,  max_attempts: 10 }
2fa_rules:
  - if: criticality == high          then: mandatory
  - if: role in [admin, approver]    then: mandatory
  - else:                            optional
sign_up:
  authorised_domains: [acme.com]
sso_enabled: [entra-id]
enrolment_grace_period: 14d

Segmentation at the identity layer: keys per tenant and per project

Network microsegmentation separates flows; cryptographic identity segmentation separates trust. In LoginMaster every tenant and every project has its own keys and every token is signed twice (RS256), by Tenant and Cloud: a token issued for project A fails validation in project B, and not because of an application check someone might forget. That is "assume breach" applied to identity: the compromise of one context does not spread to the others.

There is a second, often overlooked level: the IAM vendor. In many platforms the vendor is implicitly a trusted party, because it holds credential hashes and personal data. In LoginMaster's Tenant-Cloud architecture personal data stays on the customer's tenant and the Cloud only works on encrypted, pseudonymised data; passwords are protected with Argon2 and split-salt between Tenant and Cloud. The vendor therefore cannot access the identities it manages: "never trust" extended to the supply chain. The mechanism is explained in how an IAM where the vendor cannot read passwords works.

Non-human identities: services, devices, AI agents

A Zero Trust programme that covers only people leaves the largest share of identities open. The rules are the same, with different credentials:

  • One identity per service, device or agent, never shared: in LoginMaster a device is a subject type distinct from a user, with its own credentials.
  • API keys for server-to-server traffic, individually revocable without affecting other identities.
  • Native AWS IoT support over MQTT for devices, managed from the same console as users and applications.
  • AI agents with their own identity and permissions, never with a developer's personal token: the agent should be able to do less than the person it acts for, not more.
  • Credentials protected with Argon2id and split-salt and validated by double-signed tokens, isolated per tenant.

Further reading: AI agent identities, IoT device identities and the guide non-human identities: IoT, API keys and AI agents.

Phase 3 (days 90-180) — Lifecycle, revocation and measurement

Joiner-mover-leaver as API operations

Least privilege decays over time: people change role and accumulate permissions ("privilege creep"). The only remedy that scales is to tie the lifecycle to automatic events.

EventWhat must happenTypical mistake
JoinerIdentity created, linked only to the role's projects, 2FA enrolment within the grace periodCopying the permissions of a "similar" colleague
MoverPrevious role's permissions revoked before granting the new onesAdding new permissions without removing the old
LeaverThree distinct, verified steps: removal from projects, API key revocation, active session revocationDisabling the directory account only, leaving sessions and keys valid
Contractor engagement endsRemoval from the project without touching other tenantsExternal account left active "just in case"

In LoginMaster provisioning and revocation are automated today via REST API and the TypeScript and .NET SDKs. At offboarding, deleting the subject is not enough: the procedure must revoke project access, API keys and active sessions as distinct steps, and verify each one. Session revocation is enforced server-side through token blacklisting, so a revoked session truly stops being valid. With Entra ID / Google Workspace federation, a user disabled in the directory can no longer authenticate. SCIM 2.0 provisioning and lifecycle webhooks are on the roadmap: the HR integration pattern is in the guide provisioning and lifecycle via REST API and SDK and on user provisioning.

Periodic access recertification

Quarterly for privileged roles, yearly for the rest, the owner of each application confirms or revokes the privileges of the people and non-human identities on their project. Recertification only works if the role model is small and the owner sees the right data: who holds the role, since when, last access. It is the evidence ISO/IEC 27001 (control 5.18) and NIS2 expect to find.

Visibility: identity events and SIEM

The seventh NIST tenet asks you to collect information to improve posture. LoginMaster's native SIEM connector (Syslog CEF over TLS, towards Splunk, QRadar, Sentinel or Elastic) is on the roadmap: until it ships, forwarding identity events to the SIEM has to be planned as a dedicated integration task, best agreed with the vendor before committing to an audit date. Which events you need and how to map them to controls is in the guide access logs for ISO 27001 and SIEM; the current status of each feature is on about us.

The KPIs to measure (before, during and after)

Without measurement, Zero Trust stays a statement of intent. Measure these indicators at the end of phase 1 as a baseline and then monthly; the directions below are guidance to tune to your organisation, not guaranteed results.

KPIHow to compute itExpected direction
MFA coverageActive accounts with 2FA enabled / active accountsTowards 100% on privileged roles
Standing admin accountsNumber of accounts with administrative privilegesDecreasing, no shared admin accounts
Orphaned accountsAccounts with no owner or no access in the last 90 daysDecreasing, towards zero
Mean time to deprovisionTime between the exit recorded in HR and the actual revocation of sessions and keysFrom days to minutes
Applications behind the decision pointApplications integrated with the IAM / total applicationsIncreasing, critical ones first
Shared credentialsAPI keys or accounts used by more than one service or personTowards zero
Recertification outcomePrivileges revoked / privileges reviewedHigh at first, then decreasing

The mistakes that sink the project

  • Starting by buying a network product before knowing who accesses what.
  • Applying MFA to everyone with the same intensity: friction pushes people towards shortcuts. Policy-based MFA puts the cost where the risk is.
  • Leaving SaaS and IAM vendors implicit access to data: a vendor that can read credentials is an undeclared trusted party.
  • Forgetting non-human identities, which often outnumber human ones and never log out.
  • Treating the project as finished: without recertification and KPIs, least privilege drifts back to most privilege within a year.
  • Accepting features declared as supported when they are not: in vendor selection always ask what ships today and what is on the roadmap.

Where LoginMaster fits in the architecture

Zero Trust componentWith LoginMasterStatus
Identity Policy Decision PointAuthentication via TypeScript / .NET SDK and REST API, static policies per tenant, project and roleAvailable
Federation with the corporate directorySSO with Microsoft Entra ID and Google Workspace (OAuth 2.0 / OIDC)Available
Strong authenticationPer-project TOTP 2FA: disabled, optional, mandatory; cannot be turned off by adminsAvailable
Identity segmentationKeys per tenant and project, double-signed tokensAvailable
Untrusted vendorTenant-Cloud architecture, Argon2id with split-saltAvailable
Non-human identitiesDevice subjects, API keys, AWS IoT / MQTTAvailable
LifecycleREST API, TypeScript and .NET SDKs, server-side session revocationAvailable
SCIM 2.0 provisioning and lifecycle webhooks—Roadmap
SAML 2.0 federation—Roadmap
Native SIEM connectorSyslog CEF over TLSRoadmap
Native passkeys (FIDO2 / WebAuthn)—Roadmap

LoginMaster is a European IAM and CIAM platform, designed and built in Italy, with flat pricing per tenant and project and unlimited users: extending Zero Trust to customers, partners and non-human identities does not grow a per-user bill. For the related regulatory obligations see GDPR and NIS2 compliance, ISO 27001 alignment and the guide NIS2 and access management; if you manage both employees and end customers, the distinction is in IAM vs CIAM.

Frequently asked questions

With identity. The first step is an inventory of all human and non-human identities and their privileges, the second is to bring every application's login onto a single decision point (an IAM platform integrated via SDK or REST API, with SSO to the corporate directory), the third is to enforce MFA on privileged accounts. Network and endpoint come next, once you know who should access what.

A realistic plan for the Identity pillar takes about 180 days in three phases: days 0-30 for inventory, centralised login and MFA on administrators; 30-90 for a least-privilege role model and non-human identities; 90-180 to automate joiner-mover-leaver, recertification and KPIs. The honest six-month target is the Advanced stage of the CISA Zero Trust Maturity Model, not Optimal.

NIST SP 800-207 defines Zero Trust through seven tenets and an architecture in which a Policy Decision Point decides and a Policy Enforcement Point enforces the decision in front of every resource. In the identity-driven approach the Policy Decision Point is largely the IAM platform: access is granted per session, decided by dynamic policy and verified before every access, regardless of the network.

Every role starts with zero permissions and receives only those justified by a documented activity; roles are bound to a single project rather than global; incompatible role pairs are listed and checked at every assignment; sessions are shorter in critical contexts; privileges are periodically recertified by application owners. In LoginMaster roles live in the tenant and project context.

Static, declared policies on tenant, project and role: whether TOTP 2FA is disabled, optional or mandatory, with an enrolment grace period, session duration, failed-attempt threshold before lockout, enabled SSO providers and email domains authorised for sign-up. It does not compute a real-time risk score and does not evaluate geolocation, IP or device posture: those signals belong at the network or endpoint layer.

It should. If the IAM vendor holds personal data and credential hashes, it is an implicit trusted party. With LoginMaster's Tenant-Cloud architecture personal data stays on the customer's tenant, the Cloud only works on encrypted, pseudonymised data and passwords are protected with Argon2id and split-salt: the vendor cannot access the identities it manages.

With a dedicated identity and credential for each, never shared, permissions limited to the project and independent revocation. In LoginMaster a device is a subject type distinct from a user, server-to-server traffic uses individually revocable API keys and devices are natively supported on AWS IoT over MQTT. An AI agent should have its own permissions, not a developer's personal token.

MFA coverage on active accounts and privileged roles, number of standing admin accounts, orphaned accounts, mean time between the exit recorded in HR and the actual revocation of sessions and keys, share of applications integrated with the IAM, shared credentials and recertification outcomes. Measure them as a baseline at the end of the first phase and then monthly.

Not yet: SCIM 2.0 provisioning, lifecycle webhooks and the native SIEM connector (Syslog CEF over TLS) are on the roadmap. Today provisioning and revocation are automated via REST API and the TypeScript and .NET SDKs, with project access, API keys and sessions revoked as distinct steps; forwarding events to Splunk, QRadar, Sentinel or Elastic has to be planned as a dedicated integration until the connector ships.

Yes. NIS2 Art. 21 requires measures on access control and multi-factor authentication, and ISO/IEC 27001:2022 devotes controls 5.15-5.18 to access control, identity, authentication information and access rights and 8.5 to secure authentication. An identity-based Zero Trust programme produces exactly the evidence required: declared policies, MFA, tracked revocations and recertifications.

Want to see LoginMaster in action?

Request a personalized demo and discover how to manage identities and access securely and compliantly.