Identity Integration (Active Directory, Entra, Rewst, SCIM)
BetaLet your directory, HR system, PSA or MSP automation drive who has access to Inaya. Joiners, movers and leavers change access automatically, a leaver is cut off at once, and Inaya stays the authority, verifying and recording every change.
What it is
Identity Integration connects the systems that already know who works for you (Microsoft Entra ID, Active Directory, an HR system, a PSA, an RMM, Rewst) to Inaya. When someone joins, moves team, or leaves, the change reaches Inaya as a signed event and Inaya adjusts that person's access. It is in Business Workspace → Identity & Access (owners and admins).
It is not a second permission system. Inaya's own authorization stays exactly as it was: the membership, department, project and module roles it already checks on every request. Identity Integration only decides what those should contain, and remembers why.
What it does
- Joiner: creates the membership, gives the access the mapping justifies, records it.
- Mover: removes the old team's access, adds the new team's, and keeps everything unrelated (including access an administrator gave by hand).
- Leaver: freezes the account first, then ends sessions, credentials, workspace permissions, shares and break-glass grants, and verifies each step independently.
- Drift detection: compares a directory export with Inaya and reports every difference. It never deletes anything.
- Extras: temporary and contractor access that expires by itself, periodic access reviews, orphaned-work detection, security-incident restriction, dry-run, bulk jobs, MSP delegation.
Design rules
- Inaya stays the authority. A directory can propose; Inaya applies its own rules. "Owner" can never be granted or changed from outside, and the last owner can never be revoked.
- Removal is never delayed. Adding privileged access (admin) goes through Controlled Actions and its delay; taking access away does not.
- Fail closed. Unknown tenant, ambiguous identity, wrong signature, stale event: nothing changes, and the reason is recorded.
- Everything is evidence. Each run is in the audit chain and the Evidence Graph (subject
IDENTITY_LIFECYCLE) and can be exported as a Business Event Passport.
Compatibility status (read this before you rely on it)
Nothing on this page claims compatibility that has not been tested against the real product. VERIFIED means it ran in an automated test against a real database; UNVERIFIED means the code exists and is tested against a stand-in, but has never run against the real external product.
| Area | Status | What that means |
|---|---|---|
| Inaya-side lifecycle engine (joiner, mover, leaver, restore, ordering, idempotency) | VERIFIED | Automated tests on a real MongoDB, including races such as disable → update → enable → disable ending disabled. |
| Verified revocation and its state machine | VERIFIED | Pending, partial (with retry), complete and failed are covered, including an injected failure. |
| Webhook security (signature, timestamp window, replay, size, tenant binding) | VERIFIED | Tested through the real route handler. |
| Service credentials, scopes, MSP isolation and delegated roles | VERIFIED | Cross-tenant attempts are tested and audited. |
| Reconciliation, access reviews, orphans, temporary access, bulk jobs, outbound events | VERIFIED | Tested on a real database. |
| SCIM 2.0 server with Microsoft Entra provisioning | VERIFIED (2026-09-26, on-demand) | Real Entra provisioning service: connection test passed, a user was created as a joiner, and disabling the user in Entra ran a leaver with all six revocation steps verified. A full scheduled provisioning cycle and group-membership push were not observed (PARTIAL). Okta: UNVERIFIED. |
| Microsoft Entra ID: events in Entra-shaped payloads (webhook) | PARTIAL | Adapter tested with representative payloads. Real Entra was verified through SCIM and Graph (rows above and below), not through this webhook shape. |
| Microsoft Graph pull (your own app registration) | VERIFIED (2026-09-26) | Run against a real Entra tenant: client-credentials token, user paging and group reads, drift report produced. Only a small test tenant (3 users) was used; large-directory behavior is untested. |
| Active Directory (through an RMM, Rewst or a connector) | UNVERIFIED | Adapter tested with representative payloads. No real domain. |
| Active Directory direct (LDAP from Inaya) | UNSUPPORTED | Inaya never connects inbound to your domain controllers. |
| Any automation platform through the API (signed webhooks, service credentials) | VERIFIED (2026-09-26) | Exercised from outside against the live site: dry run, joiner, idempotent replay, leaver with verified revocation, and refusal of privileged actions. |
| Rewst specifically | UNVERIFIED | Works through the same API; reference workflows are provided, but no real Rewst workspace was used. Rewst verification pending. |
| RMM, PSA, HR adapters | UNVERIFIED | Generic normalization tested with representative payloads. |
| Okta, Google Workspace, Ping native connectors; Entra change-notification subscription management | FUTURE | Not built. |
| Recalling Microsoft-issued tokens | UNSUPPORTED | Inaya cannot recall tokens another provider issued. See Joiner, mover, leaver. |
First steps
- Business Workspace → Identity & Access → Providers → connect a provider (kind, external tenant id). Copy the signing secret; it is shown once.
- Mappings: map directory groups or attributes to departments, projects and roles.
- Point your source at the webhook (see Webhooks) or create a SCIM credential.
- Try a Dry run first: it shows what would happen and ends with
LIVE MUTATION: NO.
Related documentation
- Identity Integration ArchitectureHow an identity change travels from your directory, HR system or automation to Inaya access, and where each guarantee is enforced.
- Active DirectoryHow Active Directory changes reach Inaya (through an RMM, Rewst or a connector you run), what is mapped, and what Inaya never does.
- Microsoft Entra IDConnect your Entra tenant to Inaya: signed events, optional Microsoft Graph pull with your own app registration, and how this relates to Inaya's existing Microsoft sign-in.
- SCIM 2.0 ProvisioningInaya's SCIM 2.0 server: what it supports, how users and groups map to lifecycle events, and what is deliberately not supported.
- Rewst and MSP AutomationHow a Rewst workflow (or any automation platform) drives Inaya identity actions and receives Inaya events, with reference workflows, and an honest statement of what has and has not been tested.
- Joiner, Mover, LeaverWhat happens to Inaya access when someone joins, changes team or leaves; how immediate revocation works, its states, and the honest limits on tokens and sessions.
- Identity Integration Security and WebhooksThe webhook contract (signature, timestamp, replay, size, tenant binding), credential lifecycle, privilege rules, and what is tested.
- Identity Integration API and SDKThe organization-scoped identity API under /api/integrations/identity, the Rewst-style actions it exposes, authentication, capabilities, idempotency, and the SDK client.
- Identity Integration Troubleshooting and FAQWhy an event was refused, ignored or parked, what to check first, and answers to the questions administrators ask most.