Govern
Documentation

Version Latest

Identity and access

How people, service accounts and keys sign in to Neural Inverse Govern and how their access is granted, limited, raised for a time and reviewed.

Govern is the identity provider for the Neural Inverse apps and the authorisation service for everything it governs. Identity covers who someone is and how they prove it; access covers what they may do once signed in. This page maps the topics and where each is configured.

Where to configure it

Two console services hold identity and access:

Console serviceWhat it holds
Identity CenterWorkforce sign-in: SAML and OpenID Connect connections, verified domains, SSO enforcement, group mappings, permission sets, social sign-in, SCIM provisioning and LDAP directory sync.
AccessPeople, teams or groups, roles, API keys, group permissions, JIT and break-glass, and compliance overrides.

Some page names depend on how Govern is run. A self-hosted installation says Members, Teams, API keys and Audit log; the hosted service says Users, Groups, Access keys and Audit trail. The pages are the same.

Sign-in

TopicPage
Passwords, password policy, TOTP, recovery codes, passkeys, sessions and step-upSign-in, MFA and passkeys
Single sign-on with SAML 2.0 (Microsoft Entra ID, Okta and others)Single sign-on with SAML
Single sign-on with OpenID ConnectSingle sign-on with OIDC
Verified domains, SSO-only sign-in and break-glassDomains and SSO enforcement
Provisioning and deprovisioning from your identity providerDirectory sync with SCIM
Mapping identity provider groups to rolesPermission sets and group mappings
LDAP and Active DirectoryLDAP directory sync

Access

TopicPage
Account roles, resource roles, bindings and the permission grammarRoles and permissions
Deny policies, permission ceilings, delegation and separation of dutiesAccess guardrails
Eligible roles, activations, break-glass and resource access requestsJust-in-time access
Periodic certification of who holds whatAccess reviews
Keys for scripts, CI and non-human principalsAPI keys and service accounts

How a request is decided

Every route Govern serves declares what it needs: no credential, any signed-in caller, or a permission on a node of the directory. The server refuses to start if a route has no declaration, and a request to an undeclared route is denied.

For a permission check, Govern evaluates in this order and stops at the first step that decides:

  1. The permission must exist in the catalog. An unknown permission is denied.
  2. The node must belong to the caller's organisation.
  3. The caller must not be disabled in the organisation.
  4. Deny policies on the node or its ancestors. A deny whose condition cannot be evaluated still applies.
  5. Permission ceilings on the node or its ancestors.
  6. Role bindings on the node or its ancestors, for the person, their groups or the service account.
  7. Separation-of-duties rules.

An API key holds a permission only when both its own scopes and the principal it acts for hold it. A check that fails for an internal reason answers an error instead of falling back to a permission list.

Every change to roles, bindings, policies, settings, activations and reviews is written to the audit log in the same transaction as the change. See Audit log.

Maturity

Some identity features in the source are not ready and are not documented as available:

  • Magic-link sign-in is partial: the link does not issue a session.
  • The general step-up authentication package is not mounted. Specific flows ask for a fresh second factor themselves; see Sign-in, MFA and passkeys.
  • Personal access tokens and mTLS client certificate routes are not mounted.
  • Self-service requests for IDE and tool access (/api/v1/me/access-requests) are partial: an approval is recorded but grants nothing on the device yet. Resource access requests, described on Just-in-time access, work.
  • LDAP is partial; see LDAP directory sync.

Last reviewed 17 October 2026View as Markdown

Identity and access · Docs · Neural Inverse