GLPI for managed service providers

A managed service provider running GLPI for many clients needs strict separation between customers, client-specific service levels and auditable access. This page covers how to design, build and operate that model in infrastructure you control.

On this page

GLPI for managed service providers: what changes when one desk serves many clients

A managed service provider running one service desk and one asset inventory for many customers has a problem a single-company deployment never meets: every ticket, asset, contract and financial record must be visible to the customer it belongs to and to nobody else. GLPI is an open-source IT service management platform that covers tickets, assets, CMDB, contracts and financial management in one application, distributed under the GNU General Public License version 3. That licence matters for an MSP because the platform can be run in infrastructure the provider controls and adapted without per-seat software fees charged on top of the hosting you already pay for. The separation between customers is built on GLPI's entity model, where each customer becomes an entity, and on profiles and authorization rules that decide what a user in one entity can see and do. Your first decision is the entity tree itself: whether each customer is a top-level entity, whether customers with several sites get child entities, and where shared provider staff sit in that hierarchy.

Compared with a single-company deployment, the design work moves from configuring one organization to proving that configuration keeps customers apart. Ticket visibility, asset ownership, contract records and SLA definitions all depend on the entity a record is created in, so a mistake in the tree or in an authorization rule can expose one customer's data to another. Per-client SLAs and OLAs, prepaid credit tracking and customer-facing access are all configured against those entities, which makes entity design the foundation for the rest of the build. Ask whether your team can produce a test matrix that logs in as a user from each customer and confirms what that user cannot see, and whether that matrix is rerun after every plugin change or GLPI upgrade.

The work then spreads across four areas: entity and profile design, identity integration, inventory agents and plugins. Identity decides who signs in as which customer user, so it has to be settled before the desk goes live. Agents deployed to customer endpoints must report into the correct entity, which depends on how the agent is configured and how inventory rules place devices. Plugins that add customer-specific fields, credits or reporting need to respect the same entity boundaries, and each one should be checked against that test matrix before it is trusted. Confirm with the GLPI version you plan to run which of these features and plugins are supported on that release, and plan the upgrade path before the first customer goes live.

Which obligations shape an MSP's GLPI build

This table maps the regulatory and contractual obligations that most often reach a managed service provider and shows what each one means for a GLPI build. Read each row as a design input: entity structure, logging, access control and exit planning should be settled before clients are onboarded. The main takeaway is that client-facing evidence and data portability are set by the build, so they are cheaper to design in than to retrofit.

RequirementSourceWhat it means for the build
Managed service providers under high criticalityNIS2 Annex I places managed service providers and managed security service providers under ICT service management, a sector of high criticalityExpect clients and regulators to ask how your GLPI instance is secured, monitored and recovered. Document the platform as a service component, with named owners, access reviews and tested backups.
Technical requirements for managed providersCommission Implementing Regulation (EU) 2024/2690 sets technical and methodological requirements for NIS2 Article 21(2) measuresMap GLPI controls such as access management, logging, backup and change handling to the regulation's requirements. Confirm with counsel which parts apply to your organization's status.
Processor contracts and documented instructionsGDPR Article 28(3) requires processors to act only on documented instructions and to apply Article 32 security measuresEach client entity holds personal data about its users and tickets. Configure entities and access so processing follows the client's written instructions, and record which entity data each instruction covers.
Switching rights and switching chargesEU Data Act, Regulation (EU) 2023/2854, requires switching support and from 12 January 2027 bars switching chargesPlan exit from day one. Keep ticket, asset and contract data exportable per entity, and confirm with your GLPI partner how exports, attachments and configuration are handled.
Client assessment through SOC 2AICPA 2017 Trust Services Criteria, with security criteria CC1 to CC9 applying to every SOC 2 examinationClients often ask for SOC 2 evidence. DeployOpen prepares systems and records, but only an independent auditor issues the report. Build logs of administrative and entity-scope changes that an auditor can sample.

Which GLPI settings an MSP configures first

A multi-client GLPI service desk stands or falls on a few settings that decide who sees what, how time is measured and who signs in. Each card below names one configuration area, what it controls for a managed service provider and what to test before any customer data goes in.

Entities per customer

Each customer is usually modeled as a GLPI entity, and entities can be nested to reflect a customer's own departments or sites. The hierarchy decides where tickets, assets and contracts live and which records inherit settings from above. Before go-live, create two sample customers with a child entity each, then confirm that a ticket raised in one child cannot be seen from a sibling. Also confirm which settings are inherited and which are set per entity.

Profiles and authorization rules

Profiles define what a role can do, and authorization rules decide which profile and entity a signed-in user receives. Together they keep a customer's contact from browsing another customer's tickets, even when both use the same service desk. Test with one account per role and per customer, including a technician who works across several clients. Check that the rules fire in the expected order and that a user who matches no rule gets no access.

SLAs and OLAs, including group-managed OLAs

SLAs set the time promised to each customer, while OLAs set the internal time a team or vendor has to meet its part. GLPI 12.0.0 added group-managed OLAs, which helps when several internal groups share one ticket. Build one SLA per contract tier with its own calendar, then run test tickets through escalation at each threshold. Confirm that holidays and time zones match each customer's contract, not your office's.

Customer credits through supporting plugins

Prepaid time is not a core ticket field, so billing credits usually come from a plugin that tracks hours bought and hours consumed per customer. The plugin choice shapes how credits reduce on ticket closure and how overruns are reported. Before go-live, confirm the plugin version against your GLPI version, then test a ticket that exhausts a balance, a partial consumption and a correction. Agree with finance who owns a wrong balance and how it is reversed.

GLPI Agent with inventory separated by entity

GLPI Agent collects hardware and software inventory and sends it to GLPI, and it runs on Windows, macOS and Linux. For an MSP, the risk is an agent reporting a device into the wrong customer entity, which is hard to unwind later. Set the entity targeting per deployment group, and test with one device per customer before rollout. Verify that inventory from a shared gateway or jump host is assigned to the right entity.

Authentication order for staff and client users

GLPI tries authentication sources in order: the internal database, then LDAP, then IMAP, then external methods such as REMOTE_USER. For an MSP, the order decides whether a customer's directory account can shadow a local technician account. Map each customer directory to its entity, decide whether the internal database is used for staff only, and test a login with the same username in two customers. Confirm the behavior when a directory is unreachable.

How entities and authorization rules keep customers apart

In a multi-client GLPI instance, the main isolation decision is to model each customer as its own entity, so that tickets, assets, contracts and reports belong to one customer by default. Entities are a data boundary, not a substitute for access control, so they only protect customers when they are combined with profiles and authorization rules. Profiles define what a user can do (create tickets, read assets, run reports), while authorization rules and the entity assignment of each user define which entities that user can see. Shared technicians are the hardest case: a technician who is given read access across several entities will see all of them, so each shared role should be scoped to the entities that person genuinely serves, and the profile should be reviewed for any right that exposes data across entities, such as global reports or saved searches. Confirm the exact behavior of each right in the GLPI version you deploy before you rely on it.

Isolation claims should be tested, not assumed. Create one test user per entity, with a client-facing profile and a technician profile, and attempt cross-entity access to tickets, assets, contracts and reports by direct URL, search, and exported files. Repeat the checks for notifications: confirm that a ticket update for one customer never reaches a recipient in another entity, including through followups, satisfaction surveys and reminders. Record each result as evidence, because the same checks become the regression suite you rerun after every GLPI upgrade or plugin change.

GLPI 12.0.0 adds two controls that matter for a provider's administrators. The session view lets an administrator see active user sessions and revoke them, which is useful when a shared technician account or a departing employee still has an open session. Step-up authentication requires a user to confirm their identity again before certain administrative actions, which limits the damage from an unattended, logged-in administrator console. Decide which administrative actions your operating model should protect, verify in a test instance which actions trigger step-up authentication in your target version, and document who may revoke sessions and how that action is logged.

Rolling out GLPI from a pilot client to the full portfolio

This sequence moves a multi-client GLPI service desk from a design on paper to a production platform in which every client is isolated, measured against its own SLAs and covered by a tested update routine. Each phase opens only when the previous one has passed a defined gate.

  1. Confirm the entity and SLA model

    Before any installation, the service owner and DeployOpen agree on the entity tree, one entity per customer, the SLA and OLA calendars each client has bought, the profiles that let technicians see across clients, and the rules for prepaid credits. The output is a written model that names every entity, calendar and authorization rule. The step is complete when the service owner signs off on that document, because every later isolation test is checked against it.

  2. Build a non-production GLPI instance

    The platform team installs GLPI in a non-production environment that matches the planned production layout. The stack must meet the prerequisites in the GLPI installation documentation: PHP 8.3 or later with MariaDB 10.11 or later or MySQL 8.0 or later for the current README, or the PHP 8.2, MySQL 8.0 or MariaDB 10.6 combination listed for GLPI 11.0. The web server document root must point to GLPI's public directory, with URL rewriting routing requests through index.php. The step closes when a test administrator can sign in, the entity tree from the model exists, and the instance passes a basic health review.

  3. Pilot one client end to end

    The team configures a single client with its own entity, SLA and OLA calendars, contacts, assets, and a GLPI Agent deployed to that client's devices. Technicians work real tickets through escalation, approvals and reporting for a set period agreed with the service owner. The gate is a review of ticket routing, SLA clocks, inventory accuracy and client-facing reports, with every defect either fixed or accepted in writing. Nothing moves to the next client until this review is signed.

  4. Onboard remaining clients in batches

    Clients are added in batches rather than all at once, each batch following the same pattern: entity creation, calendar setup, agent rollout and data load. After every batch, the team runs isolation tests: a user from one client must not see tickets, assets, contracts or credits belonging to another, and cross-client technician access must match the authorization rules in the model. The batch closes when the isolation test results are recorded and the service owner accepts them.

  5. Verify isolation across the portfolio

    Once all clients are onboarded, the team runs a full isolation review across the portfolio. It checks entity-scoped reports, notification recipients, the GLPI Agent inventory mapping, and access granted through any external authentication source. The output is a signed test register with each control tested, the observed result and the owner of any exception. This register becomes the reference for future changes to profiles, rules or entities.

  6. Hand over to operations with backups

    The platform team hands the instance to operations with a documented backup routine covering the database, the GLPI files and the config directory. The config directory must include glpi.key and glpicrypt.key, and the team must store copies of both separately from the server, because losing them can make encrypted data unrecoverable. The handover closes when a restore has been tested into a separate environment and the operations runbook names the owner of each backup job.

  7. Run the update procedure with plugin checks

    Each update follows the GLPI installation documentation: back up the database, files and config directory, replace the application files, then run php bin/console db:update. Since GLPI 11.0, plugins are suspended after a new version is detected, so the team must reactivate each plugin after the update and check that its custom fields, forms and integrations still work. Every update is first applied in the non-production instance. The step is complete when a production update has a recorded checklist, a rollback point and confirmed plugin status.

Choosing self-hosted GLPI or a GLPI Network subscription

Self-hosting means the MSP installs and runs GLPI in its own cloud accounts, data centers or virtual machines. The GLPI software is distributed under the GNU General Public License version 3, so the MSP pays no license fee for the core platform. Costs shift to infrastructure, staff time for upgrades and backups, and any plugins or support contracts the MSP chooses to buy.

  • Infrastructure cost: Servers, database hosting, storage, backup targets and monitoring are billed to the MSP, whether in a public cloud or its own facilities.
  • Upgrade effort: Major releases such as the GLPI 10 to 11 move require a planned update, and plugins are suspended after a new version is detected until they are reactivated.
  • Data control: The MSP chooses where each client's tickets, inventory and contracts are stored, which helps with residency and contract terms.
  • Hardening and isolation: Web server layout, encryption key handling, backups and entity-based authorization rules remain the MSP's work.
  • Support: Community resources are free, while level 3 support comes only with a GLPI Network self-hosted subscription.

Confirm with your own platform team how many hours a month you can give to patching and backups before choosing this route.

Evidence MSP clients and auditors will ask the provider for

A managed service provider running GLPI for many customers is often asked to show its own controls, not only the ones it runs for clients. The cards below cover the attestation, certification and regulatory questions that come up most often, and what each one means for how the service desk is built. DeployOpen prepares systems, configuration and evidence; independent auditors issue SOC 2 reports and accredited certification bodies issue ISO/IEC 27001 certificates.

SOC 2 Type 1 versus Type 2

A Type 1 report describes the provider's system and the design of its controls as of a single date. A Type 2 report adds an auditor's opinion on whether those controls operated effectively over a period. Clients usually ask for Type 2 because design alone says little about daily ticket handling. Check who the report is restricted to, since a provider's SOC 2 is generally shared only under nondisclosure, unlike a general-use SOC 3 report. Ask the provider which report it holds and what period it covers.

Common criteria CC1 to CC9

Every SOC 2 examination includes the security common criteria, CC1 to CC9, drawn from the AICPA 2017 Trust Services Criteria. For a GLPI service desk, the evidence usually sits in access reviews of the GLPI profiles and entities, change records for configuration and plugin updates, logging of administrative actions, and vendor oversight of hosting. Other categories such as availability or confidentiality are added only when they are in scope. Confirm with the auditor which categories apply before collecting evidence.

ISO/IEC 27001:2022 Annex A

Annex A of ISO/IEC 27001:2022 lists controls in four themes: organizational, people, physical and technological. A provider seeking certification must show which Annex A controls it applies and why, in a statement of applicability. For GLPI, asset inventory, access control and supplier management records are the most visible items. Certification is issued by an accredited certification body, not by ISO, and it runs on a three-year cycle with audits in intervening years. Ask for the certificate scope and confirm it covers the GLPI service.

NIS2 obligations for MSPs

NIS2 Annex I places managed service providers and managed security service providers under ICT service management, a sector of high criticality. Where a provider falls in scope, its obligations include the security measures in Article 21, and the implementing regulation adopted in October 2024 sets technical requirements for managed service providers. Clients in regulated sectors will ask how the provider handles incident reporting and supplier risk. Confirm with counsel which national rules apply to your provider and your clients.

GDPR processor contract terms

Tickets routinely contain client personal data such as names, addresses and login details. Under GDPR Article 28(3), the contract between the MSP and each client must bind the processor to act only on documented instructions, including for transfers, and to meet the security requirements of Article 32. Map where ticket attachments, agent inventory and email-to-ticket content are stored, and which sub-processors touch them. Review the data processing agreement against this list before the GLPI service goes live.

EU Data Act switching rights

The EU Data Act, which has applied since 12 September 2025, requires data processing service providers to let customers switch to another provider or to on-premises infrastructure. The notice period is capped at two months, with a 30-day transitional period. From 12 January 2027, switching charges may not be imposed. For a GLPI MSP, this means ticket history, assets and configuration must be exportable in a usable form. Ask the provider how it would export a client's GLPI data and how long that would take.

What the Data Act means for leaving a GLPI service

The EU Data Act gives an MSP a legal footing for moving customer service data out of a hosted GLPI service. Under Regulation (EU) 2023/2854, which has applied since 12 September 2025, data processing service providers must let customers switch to another provider or to on-premises ICT infrastructure. The regulation sets a maximum two-month notice period and a 30-day transitional period. From 12 January 2027, providers may not impose any switching charges, and until then reduced charges may not exceed the costs directly linked to switching. Whether a given hosted GLPI arrangement falls under these articles depends on how the service is contracted and who operates it, so confirm the applicability with counsel before relying on these periods in a customer or vendor agreement.

Being able to switch on paper is not the same as being able to leave. For an MSP, the exit set should cover tickets with their full history and follow-ups, asset records and their links to customers, contracts and renewal dates, SLA and OLA definitions with their calendars, the entity tree that separates each client, and the attachments stored against tickets and assets. Ask the provider which of these leave through the interface, which need a database-level export, and whether attachments and audit history arrive in a usable form. Then run a test export for one client entity and load it into a scratch GLPI instance, checking that ticket counts, contract end dates and SLA targets match the source. Written instructions for this test belong in the exit plan.

Plan the exit as a project with its own timeline, because the statutory notice and transitional periods are short relative to the work of re-pointing customer contracts, monitoring and inventory agents. Keep the glpi.key and glpicrypt.key files and the database dump under the MSP's own control, so the data can be read after the platform changes hands. Ask the current provider for a written statement of any switching charges and when they apply, and confirm with counsel whether the MSP's own client contracts need matching exit clauses so that customers can leave the MSP without losing their records.

Questions MSPs ask before a GLPI implementation

What drives the cost and effort of a multi-client GLPI build?

The main drivers are the number of entities (one per customer in most MSP designs), how many distinct SLA and OLA schedules you need, how many integrations sit behind the service desk, how many devices must be enrolled with GLPI Agent, and whether you are migrating tickets and assets from another tool. Each entity adds configuration for profiles, authorization rules, notifications and reporting, so the count multiplies the review and testing work. Ask any partner to break the quote down by these drivers. A written scope should list each client entity, each SLA schedule, each integration and each migration source so you can see what changes the price.

Which GLPI costs are one-time and which recur?

One-time costs usually cover design, configuration, data migration, agent packaging, testing and handover. Recurring costs cover hosting, database and backup storage, operating system and PHP patching, GLPI version upgrades, plugin maintenance and any support contract. GLPI itself is distributed under the GNU General Public License version 3, so the software has no licence fee, but GLPI Network is a separate paid option. The GLPI subscriptions page lists public cloud at 19 euros per user per month, private cloud at 21 euros per user per month with a 25-user minimum, and self-hosted subscriptions from 100 euros per month (Basic) to 4,500 euros per month (Enterprise). Confirm which of these, if any, your service model needs.

How long does a multi-client GLPI implementation take?

Duration depends on the number of client entities, how much SLA and approval logic must be designed, how many data sources must be migrated and cleaned, and how many client-side stakeholders must review and test. Clients with their own identity provider, strict network rules or unusual approval chains add time. No fixed duration can be given before the scope is written, so ask for a phased plan with milestones for design sign-off, a pilot entity, migration rehearsal and production cutover. The GLPI 11 and 12 upgrade path, if you plan to upgrade during the build, should also appear as its own phase.

What must our MSP provide before the build starts?

Expect to provide a current client list with legal names and contract boundaries, written SLA and OLA schedules per client, business hours and holiday calendars, the identity sources each client uses, and the network paths from GLPI and from agents to client sites. You also need named staff who can test ticket routing, approvals and reports for each client, plus access to your current ticket tool and asset exports. Confirm who signs off on authorization rules, because a client isolation error is a security issue, not only a configuration bug.

Can our internal team deliver a multi-client GLPI build alone?

A capable internal team can do it if it has people with PHP and Linux operations experience, database administration for MySQL 8.0 or MariaDB, web server configuration, directory integration and service desk process design. GLPI requires PHP 8.2 or later for GLPI 11.0 and PHP 8.3 or later for the current main branch, so your build pipeline and hosts must match. Be honest about who will own the entity model, authorization rules and upgrades after go-live. If those skills or staff are thin, a fixed-scope partner engagement with knowledge transfer is an option.

How do we keep one client from seeing another client's tickets?

Use GLPI entities as the primary boundary, then test profiles and authorization rules against real user accounts before every release. Authentication order also matters: GLPI tries the internal database, LDAP directories, IMAP and external methods such as REMOTE_USER in that order, so a client directory must not accidentally match another client's users. Review who holds super-administrator or entity-wide rights. Write isolation tests as acceptance criteria in the scope, and repeat them after each GLPI upgrade and plugin change.

What should we ask for in a written, fixed-scope quote?

Ask for a quote that lists every deliverable and assumption: the entity count and naming, SLA and OLA schedules, integrations, agent rollout scope, migration sources and record volumes, test cases, acceptance criteria and handover documents. Confirm which GLPI version is in scope and whether the upgrade path to GLPI 11 or 12 is included. Require a statement of what the client provides, what is excluded, how change requests are priced and what post-go-live support or retainer is offered. Fixed scope is usually agreed in writing before work starts, so every item you care about should appear there.

How DeployOpen scopes and delivers a GLPI MSP service desk

DeployOpen plans, implements, customizes, hardens, documents and supports self-hosted open-source platforms inside the client's own infrastructure. For GLPI as a multi-client service desk, we start from a written scope that sets out entities, SLAs, credits and authorization rules before any build begins.

How we scope

  • List every customer entity, its contracted SLA and OLA calendars, and which contracts and prepaid credits it holds.
  • Define the authorization model that keeps each customer's tickets, assets and reports separate from the others.
  • Agree in writing which integrations, agents and plugins are in scope, and which are excluded from the fixed scope.

How we build

  • Deploy GLPI on infrastructure you control, with the web server document root set to the public directory and PHP and database versions checked against the release requirements.
  • Configure entities, profiles, SLA rules, escalation and routing per customer, then test each boundary with accounts from different customers.
  • Validate the GLPI 11 and 12 upgrade path on a staging copy, including plugin reactivation steps, before production changes are scheduled.

How we hand over

  • Document entity structure, authorization rules, SLA configuration and credit handling so your operators can explain and change them.
  • Provide backup and restore runbooks covering the database, files and the glpi.key and glpicrypt.key encryption keys.
  • Run a handover session with your service desk leads and walk through the test evidence for customer separation.

How we support

  • Support is available as a retainer for updates, plugin maintenance, and new customer onboarding after the initial delivery.
  • Ongoing work is priced from the written scope, so the cost of each new customer or entity is known before it is added.
  • Confirm with DeployOpen which release train and support level your team needs before the retainer scope is signed.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.