ZuploZuplo
LoginStart for Free
  • Documentation
  • API Reference
Getting Started
Concepts
API Management
AI Gateway
MCP Gateway
    Overview
    Getting Started
      How it works
      Connect MCP clients
      Authentication
      Cross App Access
      Configuration
      Policies
        Overview
        Authorization
          Generic OAuthAuth0 OAuthClerk OAuthAmazon Cognito OAuthMicrosoft Entra OAuthGoogle OAuthKeycloak OAuthLogto OAuthOkta OAuthOneLogin OAuthPingOne OAuthWorkOS OAuthToken Exchange
        Security & Validation
      Observability
      ReferenceServer RegistryTroubleshooting
    MCP Server
    Developer Portal
    Development
    Deploying & Source Control
    Analytics
    Observability
    Networking & Infrastructure
    Account Management
    Programming API
    Build with AI
    Zuplo CLI
    Migration Guides
    Platform LimitsVersion Support PolicySecuritySupportTrust & ComplianceChangelog
    powered by Zuplo
    Authorization

    MCP OneLogin OAuth Policy

    MCP Gateway Policy

    This policy is for use with the MCP Gateway. See the MCP Gateway documentation to learn how to proxy and secure MCP servers with Zuplo.

    Authenticate MCP gateway requests using a gateway-issued OAuth access token, with browser login delegated to OneLogin.

    This is a OneLogin-friendly wrapper around McpOAuthInboundPolicy. Provide a OneLogin account subdomain, clientId, and clientSecret; the OneLogin OIDC issuer, JWKS URL, and browser login endpoints are derived automatically.

    Configuration

    The configuration shows how to configure the policy in the 'policies.json' document.

    Code
    { "name": "my-mcp-onelogin-oauth-inbound-policy", "policyType": "mcp-onelogin-oauth-inbound", "handler": { "export": "McpOneLoginOAuthInboundPolicy", "module": "$import(@zuplo/runtime)", "options": { "browserLoginOverrides": { "remoteTimeoutMs": 10000, "sessionTtlSeconds": 28800, "stateTtlSeconds": 900 }, "clientId": "$env(ONELOGIN_CLIENT_ID)", "clientSecret": "$env(ONELOGIN_CLIENT_SECRET)", "gateway": { "accessTokenTtlSeconds": 900, "cimdEnabled": true, "refreshTokenTtlSeconds": 2592000 }, "oneLoginSubdomain": "acme", "scope": "openid profile email" } } }

    Policy Configuration

    • name <string> - The name of your policy instance. This is used as a reference in your routes.
    • policyType <string> - The identifier of the policy. This is used by the Zuplo UI. Value should be mcp-onelogin-oauth-inbound.
    • handler.export <string> - The name of the exported type. Value should be McpOneLoginOAuthInboundPolicy.
    • handler.module <string> - The module containing the policy. Value should be $import(@zuplo/runtime).
    • handler.options <object> - The options for this policy. See Policy Options below.

    Policy Options

    The options for this policy are specified below. All properties are optional unless specifically marked as required.

    • oneLoginSubdomain (required) <string> - The OneLogin account subdomain, without https://, .onelogin.com, a trailing slash, or a path.
    • clientId (required) <string> - The OneLogin OIDC application client_id registered for the gateway's browser login flow.
    • clientSecret (required) <string> - The OneLogin OIDC application client_secret. Use $env(...) to source from a secret environment variable.
    • scope <string> - OIDC scopes requested during browser login. Defaults to "openid profile email".
    • gateway <object> - Gateway-side OAuth token settings. The gateway issuer and advertised URLs are derived from the incoming request origin.
      • accessTokenTtlSeconds <integer> - Lifetime of access tokens issued by /oauth/token. Defaults to 900.
      • refreshTokenTtlSeconds <integer> - Lifetime of refresh tokens issued by /oauth/token. Defaults to 2592000.
      • cimdEnabled <boolean> - Whether to advertise client_id_metadata_document_supported in AS metadata. Defaults to true.
    • idJag <undefined> - Optional Identity Assertion JWT Authorization Grant (ID-JAG / XAA) support for the gateway token endpoint.
    • browserLoginOverrides <object> - Optional overrides for the derived browser-login settings.
      • remoteTimeoutMs <integer> - No description available. Defaults to 10000.
      • stateTtlSeconds <integer> - No description available. Defaults to 900.
      • sessionTtlSeconds <integer> - No description available. Defaults to 28800.

    Using the Policy

    Authenticate MCP gateway requests using a gateway-issued OAuth access token, with browser login delegated to OneLogin.

    This is a thin OneLogin-friendly wrapper around the generic McpOAuthInboundPolicy. Use it when you want to configure browser login with OneLogin-specific fields instead of the full set of OIDC URLs.

    Derived configuration

    For OneLogin OIDC v2, the wrapper derives:

    Generic fieldDerived value
    oidc.issuerhttps://{oneLoginSubdomain}.onelogin.com/oidc/2
    oidc.jwksUrlhttps://{oneLoginSubdomain}.onelogin.com/oidc/2/certs
    browserLogin.urlhttps://{oneLoginSubdomain}.onelogin.com/oidc/2/auth
    browserLogin.tokenUrlhttps://{oneLoginSubdomain}.onelogin.com/oidc/2/token

    These endpoint shapes follow OneLogin's OIDC provider configuration endpoint at https://{oneLoginSubdomain}.onelogin.com/oidc/2/.well-known/openid-configuration.

    Configuration

    Code
    { "name": "onelogin-managed-oauth", "policyType": "mcp-onelogin-oauth-inbound", "handler": { "module": "$import(@zuplo/runtime)", "export": "McpOneLoginOAuthInboundPolicy", "options": { "oneLoginSubdomain": "acme", "clientId": "$env(ONELOGIN_CLIENT_ID)", "clientSecret": "$env(ONELOGIN_CLIENT_SECRET)" } } }

    oneLoginSubdomain must be only the account subdomain, such as acme from https://acme.onelogin.com. Do not include https://, .onelogin.com, a trailing slash, or an OIDC path.

    Pairing

    Pair this policy with McpTokenExchangeInboundPolicy and McpProxyHandler, the same as McpOAuthInboundPolicy. Only one MCP OAuth policy is allowed per project; attach the same policy by name to every MCP route.

    Read more about how policies work

    Edit this page
    Last modified on October 4, 2026
    Okta OAuthPingOne OAuth
    On this page
    • Configuration
      • Policy Configuration
      • Policy Options
    • Using the Policy
    • Derived configuration
    • Configuration
    • Pairing
    JSON
    JSON