Frontegg raises $5M in seed round to accelerate SaaS innovation Read more

Single Sign-On (SSO)

Improved security and usability with a fully compliant self-service single sign-on

  • image description
    & Compliance
Frontend Support
  • image description
  • image description
    • image description
    • image description
Backend Support
  • image description
  • image description
    • image description
    • image description
    • image description
    • image description
      Ruby on Rails

Component description

Enterprises rely on SAML-based SSO for improved security and usability, and to overcome IT fragmentation and administrative overhead.

Frontegg’s advanced SSO identity management system and SSO secured flow enable your customers to apply identity federation to their authentication flow in a single click. Domain verification is added as an extra security layer to avoid impersonation, meeting corporates’ requirements for secured user authentication and regulatory compliance.

Streamlined support of Okta, G Suite, Azure AD and ADFS, and SAML 2.0 compliance, ensure that all your customers can utilize your SSO solution seamlessly.

Frontegg’s SAML/SSO is self-service, ready to use in a completely managed serverless approach. Or, leverage Frontegg's Agnostic-Environment approach by installing a docker container or a helm chart on your k8s environment or even on your customers’ cloud/prem.

Integrate this Frontegg component in under two hours… and you’re in business.

Read more

Typical costs during own

If you were to develop your own custom reporting feature,
it would typically involve:

  • Development costs
    2 Engineer
  • Maintenance costs
    1 Engineer
  • Cloud and I/S costs
    ~$2K per

In-app integration performed in minutes

Frontend native component and REST API or SDK on the backend.

  • Typically deployed in ~2 hours
import React from 'react';
import * as Frontegg from '@frontegg/react';
function SsoWrapper() {
  const providerOptions = {
    // Your base URL used for communicating with the backend
    baseUrl: 'http://localhost:5000/', 
    // The token passed from frontend to backend used for authenticating calls 
    tokenResolver: () => { return 'my-token'; },
  return (
      <Frontegg.ContextProvider value={providerOptions}>
        <Frontegg.SsoConfiguration rootDir="/settings/sso" />

export default NotificationsWrapper;
import { frontegg, FronteggPermissions } from '@frontegg/client'
app.use('/frontegg', frontegg({
  clientId: 'YOUR-CLIENT-ID',
  apiKey: 'YOUR_API_KEY',
  contextResolver: async (req) => {
    const userId = 'the-logged-in-user-id';
    const tenantId = 'the-logged-in-tenant-id';
    return {
      permissions: FronteggPermissions.All, // Permissions can be controlled