Skip to content

Organizations Overview

Organizations represent your customers. Each organization is a container for members, verified email domains, SSO connections, and authentication policies. Your application uses organizations to enforce per-customer security requirements and route users to the correct identity provider during sign-in.


An organization requires a name. You can optionally provide an external_id to link the organization to a record in your own system.

The portal provides a dashboard for managing organizations at Organizations in the sidebar. From there you can:

  • Create a new organization
  • View and update the organization name
  • Configure authentication policies
  • Manage domains, SSO connections, and members

Each organization is scoped to an environment. Organizations in one environment are isolated from organizations in another.


Domains associate an email domain (for example, acmecorp.com) with an organization. A verified domain enables two features:

  • Home realm discovery — when a user signs in with an email matching a verified domain, Seal routes them to the organization’s SSO identity provider automatically
  • Email trust — users who authenticate through SSO with a verified domain are treated as email-verified without a separate verification step

To add a domain, navigate to Organizations > (select organization) > Domains and enter the domain name. Seal generates a DNS verification token for the domain.

A domain transitions through the following statuses:

StatusMeaning
PENDINGDomain has been added but ownership is not yet confirmed
PROVISIONINGVerification is in progress
VERIFIEDDomain ownership is confirmed and the domain is active

Only verified domains trigger home realm discovery. If a domain is pending or provisioning, users with matching email addresses sign in using standard authentication methods.

When a user enters their email address during sign-in, Seal extracts the domain portion and checks whether it matches a verified organization domain. If a match is found and the organization has an enabled, published SSO connection, Seal redirects the user to the organization’s identity provider.

Enter email (jane@acmecorp.com) Extract domain, find verified org domain Look up SSO connection for organization Redirect to IdP Authenticate SAML/OIDC response Authentication complete User Seal SSO Identity Provider

For a detailed explanation of how domain routing interacts with different login methods, see the authentication flow page.


Each organization has three policy flags that control how users authenticate. Configure these from the organization’s overview page in the portal.

PolicyEffect
Require SSO for domain membersUsers whose email matches a verified organization domain must authenticate through the organization’s SSO connection. Password, magic link, and other methods are blocked for these users.
Require SSO for guestsUsers whose email does not match a verified organization domain must also authenticate through SSO.
Require MFA for non-SSO usersUsers who sign in without SSO (password, magic link) must enroll in multi-factor authentication.

These policies are evaluated during the authentication flow. For example, if Require SSO for domain members is enabled and a user with a matching email domain attempts to sign in with a password, Seal redirects them to the organization’s SSO identity provider instead.

In addition to organization-level policies, each organization can configure a domain policy that controls which authentication methods are available:

SettingDescription
allow_ssoAllow enterprise SSO authentication
allow_passwordAllow password-based sign-in
allow_passkeyAllow WebAuthn passkey authentication
allow_magic_linkAllow magic link (email code) sign-in
allowed_oauth_providersList of permitted social login providers (Google, Microsoft, GitHub)
require_mfaRequire multi-factor authentication
auto_membership_enabledAutomatically add users with matching email domains as members

Each organization can have one SSO connection that links it to an external identity provider. Seal supports two protocols and multiple providers:

Protocols: SAML, OIDC

Providers: Okta, Microsoft Entra ID, Google Workspace, or a generic provider for other SAML/OIDC-compatible identity providers

StatusMeaning
DRAFTConnection is being configured and is not yet active
PUBLISHEDConnection is fully configured and available for authentication

A connection must be both published and enabled for Seal to use it during authentication. Draft connections and disabled connections are ignored by home realm discovery.

When the should_auto_provision_user flag is enabled on an SSO connection, Seal creates a user account automatically the first time someone authenticates through that connection. This eliminates the need to pre-create user accounts before enabling SSO.

SSO connections support attribute mapping to translate identity provider attributes to Seal user fields. Each mapping defines a pair:

  • IdP attribute name — the attribute key from the SAML assertion or OIDC claims
  • Environment attribute key — the corresponding field in Seal

This allows Seal to populate user profile data (name, email, department) from the identity provider during authentication.


Members are users who belong to an organization. A user connects to an organization through a membership record that tracks the organization_id, organization_user_id, and a status field.

Users join an organization through several paths:

  • Direct addition — add existing users from the environment to the organization through the portal at Organizations > (select organization) > Members
  • Just-in-time provisioning — when a user authenticates through an SSO connection with auto-provisioning enabled, Seal creates the user and the membership automatically
  • Auto-membership — when auto_membership_enabled is set in the domain policy, users with matching email domains are added as members on sign-in

Removing a member deletes the membership record that links the user to the organization. The user account itself is not deleted and can still belong to other organizations.

A single user can belong to multiple organizations. When this user signs in, the authentication flow includes an organization selection step. The user chooses which organization to authenticate into, and the selected organization is included in the access token’s organization claim.


Each environment maintains an audit log that records security-relevant events. You can filter audit events by organization to see activity scoped to a specific customer.

The portal provides an audit log viewer at Organizations > (select organization) > Audit Log. You can also view environment-wide audit events from the Audit Logs section in the main sidebar.

The audit log supports filtering by:

  • Event type — filter by specific event name or search across event types
  • Date range — filter events by time window
  • Outcome — filter by SUCCESS, FAILURE, DENIED, or ERROR

Seal tracks the following categories of events:

CategoryEvents
AuthenticationPassword, magic link, SSO, OAuth, MFA, and email verification — both succeeded and failed
UsersCreated, updated, deleted
OrganizationsCreated, updated
Organization domainsCreated, deleted
Organization membershipsCreated, deleted
SSO connectionsActivated, deactivated, deleted
SessionsCreated, revoked, revoked all
Password resetsCreated, succeeded

Each audit event records:

FieldDescription
event_typeThe type of event (for example, AUTHENTICATION_SSO_SUCCEEDED)
actorWho performed the action — includes type (USER or API_KEY), ID, name, and email
targetThe resource acted upon — includes type, ID, and name
outcomeResult of the action (SUCCESS, FAILURE, DENIED, ERROR)
ip_addressIP address of the request
user_agentBrowser or client user agent string
occurred_atWhen the event happened
payloadAdditional event-specific data in JSON format

Click any event row in the portal to view the full detail panel, including actor information, target details, request context, and payload data.