deployment

No menu items for this category
OpenMetadata Documentation

Okta SSO Configuration (Confidential Client)

Okta Single Sign-On (SSO) enables users to log in to OpenMetadata with their Okta credentials using OAuth 2.0 and OpenID Connect (OIDC) protocols.

Okta SSO Configuration - Confidential Client

Defines a human-readable name to identify this Okta SSO configuration.

  • Example: Okta SSO, Company Okta
  • Note: This is for display purposes only and does not affect authentication functionality.

Allows users to create OpenMetadata accounts on first login.

  • Options: Enabled | Disabled
  • Recommended: Disabled (for tighter access control)

Your Okta domain URL used to issue tokens.

  • Example: https://dev-123456.okta.com or https://company.okta.com
  • Note: This must match your Okta domain exactly.

URLs where Okta publishes its public signing keys.

  • Example: ["https://dev-123456.okta.com/oauth2/v1/keys"]
  • Note: Usually auto-discovered via discovery URI.

Specifies the JWT algorithm to validate token signatures.

  • Options: RS256 | RS384 | RS512
  • Default: RS256

Defines the application type: public (no secret) or confidential (requires client secret).

  • Recommended: Confidential (for backend services and web apps)

The client ID from your Okta app registration.

  • Example: 0oabc123def456ghi789

The client secret for authenticating your confidential client.

  • Example: abc123def456ghi789jkl012mno345pqr678st
  • Note: Only used for confidential clients. Rotate regularly.

Permissions requested during authentication.

  • Default: openid email profile
  • Optional: Add groups for group-based authorization.

URI to retrieve Oktaโ€™s OIDC metadata.

  • Example: https://dev-123456.okta.com/.well-known/openid-configuration

Enables anti-replay protection.

  • Default: true

Preferred JWT signing algorithm.

  • Default: RS256

Defines the OAuth flow type.

  • Options: id_token | code
  • Recommended: code (authorization code flow)

Disables PKCE (Proof Key for Code Exchange).

  • Default: false
  • Note: Should generally remain enabled for security.

Allowed time difference (in seconds) between systems during token validation.

  • Example: 0

Specifies how the client authenticates with Okta.

  • Options: client_secret_basic | client_secret_post | client_secret_jwt | private_key_jwt
  • Default: client_secret_basic

How long tokens remain valid (in seconds).

  • Default: 0 (uses Oktaโ€™s default)
  • Example: 3600 (1 hour)

Your Okta organization subdomain.

  • Example: dev-123456, company
  • Definition: Your OM server URL.
  • Example: https://yourapp.company.com.
  • Why it matters: specifies the URL at which OM is hosted.

Redirect URI for handling login responses.

  • Example: https://yourapp.company.com/callback
  • Note: Must match exactly in Okta โ†’ Applications โ†’ Sign-in redirect URIs

Maximum time (in seconds) before forcing re-authentication.

  • Example: 3600
  • Optional: Leave empty to use default behavior.

Controls authentication behavior.

  • Options: none | login | consent | select_account
  • Recommended: login (forces credential prompt)

Controls user session duration (in seconds).

  • Default: 604800 (7 days)

JWT fields used to identify the authenticated user.

  • Example: ["preferred_username", "email", "sub"]

Maps JWT claims to OpenMetadata user profile fields.

  • Example: ["email:email", "name:name", "firstName:given_name"]
  • Note: Format: "openmetadata_field:jwt_claim"

List of users with full admin access.

  • Example: ["admin@company.com", "superuser@company.com"]
  • Note: Must match one of the JWT claim values.

Default domain for user identifiers.

  • Example: company.com

Restricts access to users within the configured domain.

  • Default: false
  • Example: true

Enforces secure (SSL/TLS) communication.

  • Default: false
  • Recommended: true for production environments
FieldExample / Default
Client TypeConfidential
OIDC Client ID0oabc123def456ghi789
OIDC Client Secretabc123def456ghi789jkl012mno345pqr678st
Callback URLhttps://yourapp.company.com/callback
Authorityhttps://dev-123456.okta.com
OIDC Discovery URIhttps://dev-123456.okta.com/.well-known/openid-configuration
Public Key URLshttps://dev-123456.okta.com/oauth2/v1/keys
Token Validation AlgorithmRS256
OIDC Response Typecode
OIDC Request Scopesopenid email profile groups
OIDC Preferred JWS AlgorithmRS256
OIDC Use Noncetrue
OIDC Disable PKCEfalse
OIDC Client Authentication Methodclient_secret_basic
OIDC Max Clock Skew0
OIDC Token Validity3600
OIDC Max Age3600
OIDC Promptlogin
OIDC Session Expiry604800
OIDC Tenantdev-123456
OIDC Server URLhttps://dev-123456.okta.com
JWT Principal Claims["preferred_username", "email", "sub"]
JWT Mapping["email:email", "name:name", "firstName:given_name"]
Admin Principals["admin@company.com"]
Principal Domaincompany.com
Enforce Principal Domainfalse
SSL/TLStrue

If users are automatically logged out and unable to log in again due to a bad authentication configuration, you can reset the security setup using the following command:

After executing the command, restart the server. The authentication values from your YAML or Helm chart will then be reapplied on startup. The following tiles detail how to apply this configuration across Docker, Kubernetes, and Bare Metal deployments: