Skip to main content
Genesis operates as a SCIM 2.0 service provider. Your Identity Provider (IdP) pushes users and groups to Genesis at https://<genesis-host>/scim/v2, and Genesis automatically creates, updates, deactivates, and re-roles the matching users. This page is the entry point. Use the linked pages for IdP-specific setup, admin API usage, validation, monitoring, and security.

Admin API

Generate and rotate SCIM bearer tokens, configure group-to-role mappings.

IdP Setup Guides

Step-by-step instructions for Okta, Azure Entra ID, OneLogin, and AWS-sourced provisioning.

Okta Setup Guide

Screenshot-backed Okta setup and validation walkthrough.

Pilot Runbook

Preflight, validation, conformance harness, and rollback steps.

API Reference

Endpoint reference with request and response examples.

Monitoring

Signals to track, suggested alerts, and audit queries.

Security

Security controls, risks, and production recommendations.

Capabilities

Out of scope for the current release

  • SCIM Bulk operations.
  • Custom schema extensions beyond the SCIM Enterprise User extension fields documented in the API Reference.
  • Outbound SCIM (Genesis pushing to an IdP).
  • IdP pull sync (Genesis polling an IdP).
  • ETag / If-Match optimistic concurrency.

How it fits together

  1. An admin generates a SCIM bearer token in Genesis.
  2. An admin configures the group-to-role mapping in Genesis.
  3. The IdP is configured with the SCIM base URL plus the bearer token.
  4. The IdP pushes user and group changes whenever they happen on its side.
  5. Genesis applies the changes, persists audit rows, and reflects role changes.

Configuration

SCIM is configured through environment variables on the Genesis deployment plus admin REST calls into the running app.

Environment variables

Treat the SCIM bearer token like a password. Store it in your IdP’s secret field and your deployment secret manager. Do not put it in screenshots, shared tickets, or shell history.

Helm values example (Kubernetes deployments)

For deployment-specific guidance on AWS EKS, see Deploying Genesis - Kubernetes on AWS.

Quick start

1

Generate a SCIM bearer token

Call the admin API as a Genesis admin:
Save the returned plaintext token immediately. Genesis only returns it once.
2

Configure the group-to-role mapping

Mapping keys can be the IdP group display name or the IdP externalId. Use whatever your IdP sends as the group identifier on the SCIM Group resource. The example names above are illustrative.
3

Configure the IdP

Follow the step-by-step instructions in SCIM IdP Setup Guides. Common values for any IdP:
  • SCIM base URL: https://<genesis-host>/scim/v2
  • Auth: Bearer token (from step 1)
  • userName: primary email address
  • Groups: push only the groups present in the Genesis mapping
  • Deprovisioning: send active=false
4

Pilot validation

Run the SCIM Pilot Runbook end-to-end on a pilot user before enabling SCIM-only login admission for the deployment.
5

Enable SCIM-only login (optional)

After the pilot succeeds, set GENESIS_SCIM_REQUIRE_PROVISIONED_USERS=true to restrict sign-in to active, SCIM-provisioned users.

SCIM-managed users in the dashboard

Users provisioned through SCIM are labelled Managed by SCIM in the Users and Roles page. Manual role add and revoke controls are intentionally hidden for these users. Update the user’s IdP group membership and the SCIM group-to-role mapping instead of editing role badges in Genesis directly.

Compliance summary

  • Every SCIM operation (user create/update/deactivate, group sync, group delete, token rotation, mapping update) writes a row to SCIM_AUDIT_LOG with tenant, operation, resource type, resource ID, externalId, before JSON, after JSON, and timestamp.
  • Persisted bearer tokens are stored as hashes; plaintext tokens are returned only once at rotation time.
  • Deprovisioning is always soft (active=false); Genesis does not hard-delete users in response to SCIM operations.
  • For regulated customers, see SCIM Monitoring for SIEM export guidance.

Limitations and known caveats

  • No outbound SCIM. Genesis does not push users or groups to an IdP.
  • No pull sync. Genesis does not poll an IdP’s SCIM endpoint.
  • No SCIM Bulk operations.
  • No custom schema extensions beyond the SCIM Enterprise User extension fields documented in the API Reference.
  • No ETag / If-Match concurrency. Genesis returns weak version metadata but does not enforce optimistic concurrency.
  • No dedicated admin UI for token rotation or mapping management in this release. Use the admin REST API.
  • Per-token rate limiting is in-process. For multi-replica deployments, enforce global limits at ingress, WAF, API gateway, or a shared limiter.
  • AWS IAM Identity Center is not a native outbound SCIM source for arbitrary applications. See SCIM IdP Setup Guides — AWS-sourced provisioning for the supported pattern.