Skip to content

Pending Review

Pending Review from User Experience (UX)

SSO Config Component

Overview

The SSO Config component provides a comprehensive Single Sign-On configuration and management system for enterprise applications. This solution component combines tenant configuration, OIDC and SAML provider management, and administrative controls to deliver complete SSO setup workflows with multi-provider support and advanced authentication settings.

Core Capabilities

  • Multi-Protocol SSO Support - Complete configuration support for both OIDC (OpenID Connect) and SAML identity providers
  • Tenant Configuration Management - Administrative controls for tenant-level SSO settings including local login options and automatic registration
  • Provider Lifecycle Management - Full CRUD operations for SSO providers with enable/disable controls and configuration validation
  • Context-Driven State Management - Centralized SsoConfigContext for consistent configuration state across all management components
  • Wizard-Based Configuration - Step-by-step guided setup for complex SSO provider configurations with validation and testing
  • Security and Compliance Features - Advanced security settings including role discovery, signature validation, and authentication method configuration

When to use SSO Config:

  • Enterprise Identity Management - Applications requiring sophisticated SSO configuration with multiple identity provider support
  • Multi-Tenant SaaS Platforms - Software-as-a-Service applications needing tenant-specific SSO configuration and provider management
  • Administrative Dashboards - Management interfaces for configuring organizational SSO settings and identity provider integration
  • Identity Provider Integration - Applications that need to integrate with corporate identity systems and external authentication providers

When not to use SSO Config:

  • Simple Authentication - Use basic authentication components for applications without SSO requirements or identity provider integration
  • Single Provider Systems - Consider simpler configuration patterns for applications with fixed, single identity provider setups
  • Development Environments - Use mock authentication systems for development and testing scenarios without full SSO configuration complexity

Basic Implementation

import React, { useState } from 'react';
import { PwcSsoConfig } from '@progress-i360/pwc-react';

function SSOConfiguration() {
  const [config, setConfig] = useState({
    provider: 'oidc',
    enabled: true
  });

  const handleConfigChange = (field: string, value: any) => {
    setConfig(prev => ({ ...prev, [field]: value }));
  };

  return (
      <PwcSsoConfig
        baseApiUrl="/api/v1/sso"
        onConfigChange={handleConfigChange}
      />
  );
}
import { useCallback, useDeferredValue, useEffect, useRef, useState } from 'react';
import '@progress-i360/progress-web-components/sso-config';

function SSOProviderSettings() {
  const [providerSettings, setProviderSettings] = useState({
    oidcEnabled: true,
    samlEnabled: false
  });

  const deferredSettings = useDeferredValue(providerSettings);
  const { oidcEnabled, samlEnabled } = deferredSettings;
  const configRef = useRef<(HTMLElement & { oidcEnabled: boolean; samlEnabled: boolean }) | null>(null);

  const handleSettingsChange = useCallback((event: CustomEvent<{ type: string; enabled: boolean }>) => {
    const { type, enabled } = event.detail;
    setProviderSettings(prev => ({ ...prev, [type]: enabled }));
  }, []);

  useEffect(() => {
    if (configRef.current) {
      configRef.current.oidcEnabled = oidcEnabled;
      configRef.current.samlEnabled = samlEnabled;
    }
  }, [oidcEnabled, samlEnabled]);

  return (
      <pwc-sso-config
        ref={configRef}
        base-api-url="/api/v1/sso"
        onPwcProviderChange={handleSettingsChange}
      ></pwc-sso-config>
  );
}
import { Component, CUSTOM_ELEMENTS_SCHEMA } from "@angular/core";
import "@progress-i360/progress-web-components/sso-config";
import "@progress-i360/progress-web-components/action-bar";
import "@progress-i360/progress-web-components/button";

@Component({
  selector: 'sso-config-demo',
  template: `
    <pwc-sso-config [baseApiUrl]="apiUrl"></pwc-sso-config>
    <pwc-action-bar heading="SSO Providers" [rowCount]="providerCount">
      <pwc-button slot="actions" label="Add Provider" variant="primary" (pwc-click)="addProvider()"></pwc-button>
    </pwc-action-bar>
  `,
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class SsoConfigDemo {
  apiUrl = "/mockssoapi";
  providerCount = 2;

  addProvider() {
    this.providerCount++;
  }
}
const ssoConfig = document.createElement('pwc-sso-config');
ssoConfig.setAttribute('base-api-url', '/api/v1/sso');

// OIDC auto-configuration from provider URL
ssoConfig.addEventListener('pwc-oidc-import', async (event) => {
  const { fromUrl } = event.detail;

  const response = await fetch('/api/v1/sso/configuration/import/broker-config-url', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ fromUrl })
  });

  if (response.ok) {
    const config = await response.json();
    console.log('OIDC configuration imported:', config.item);
  }
});

// Provider enable/disable management
ssoConfig.addEventListener('pwc-provider-toggle', async (event) => {
  const { providerName, enabled } = event.detail;
  const action = enabled ? 'enable' : 'disable';

  await fetch(`/api/v1/sso/broker/${providerName}/${action}`, {
    method: 'PATCH'
  });

  console.log(`SSO provider ${providerName} ${action}d successfully`);
});

document.body.appendChild(ssoConfig);

Usage Patterns

  • Enterprise SSO Administration - Complete administrative interface for managing organizational SSO settings and identity provider configurations
  • Multi-Provider Configuration - Setup and management of multiple OIDC and SAML providers with different authentication workflows and security settings
  • Tenant-Specific Customization - Configuration of tenant-level SSO preferences including local login options and automatic user registration settings
  • Provider Testing and Validation - Built-in testing capabilities for validating SSO provider configurations and authentication flows before deployment

Best Practices

Content Strategy Guidelines

  • Clear Provider Organization - Structure SSO providers logically with descriptive names and consistent display ordering for easy management
  • Configuration Validation Messaging - Provide clear, actionable validation messages that guide administrators through complex SSO setup processes
  • Security Setting Transparency - Present security-related configuration options with helpful explanations of their impact on authentication workflows
  • Step-by-Step Guidance - Use progressive disclosure and wizard patterns to break complex SSO configuration into manageable steps

Performance Optimization

  • Efficient Context Management - Implement proper SsoConfigContext usage to minimize unnecessary re-renders during configuration changes
  • API Call Optimization - Use debounced validation and batch operations for provider configuration updates to reduce server load
  • Lazy Loading Configuration - Load provider-specific configuration data only when needed to improve initial page load performance
  • State Persistence - Implement proper state management to preserve configuration progress during multi-step setup workflows

Integration Architecture

  • Modular Configuration Components - Structure SSO components (tenant summary, OIDC editor, SAML editor) as independent, reusable modules
  • Context-Driven Design - Leverage SsoConfigContext for consistent state management across all SSO configuration workflows
  • API Abstraction Layer - Implement clean SSO API client with proper error handling, retry logic, and configuration validation
  • Security-First Architecture - Design configuration flows that prioritize security best practices and compliance requirements

Common Use Cases

Data Table Headers

  • Provider Management Tables - Administrative tables showing SSO providers with status, type (OIDC/SAML), and configuration completeness indicators
  • Tenant Configuration Views - Management interfaces displaying tenant-level SSO settings with enable/disable controls and configuration options
  • Provider Performance Metrics - Tables showing SSO provider usage statistics, authentication success rates, and error tracking information

Search Result Sections

  • Provider Discovery - Search across configured SSO providers by name, type, status, and configuration parameters for easy administration
  • Configuration History - Search and filter SSO configuration changes with audit trails and version history for compliance tracking
  • Provider Troubleshooting - Search SSO authentication logs and error reports by provider, user, or time period for debugging support

Dashboard Widget Headers

  • SSO Health Monitoring - Dashboard widgets showing SSO provider status, authentication success rates, and system health metrics
  • Configuration Overview - Summary widgets displaying configured providers, active tenant settings, and configuration completeness status
  • Security Analytics - Overview widgets showing authentication patterns, security events, and compliance status across SSO providers

Troubleshooting

Configuration Issues

  • Provider Metadata Loading - Verify provider endpoints, certificate configurations, and metadata URLs are accessible and properly formatted
  • Authentication Flow Errors - Check redirect URIs, scope configurations, and protocol-specific settings for OIDC/SAML providers
  • Tenant Configuration Conflicts - Resolve conflicting tenant-level SSO settings and provider priority configurations

Integration Problems

  • Context State Management - Ensure SSO Config context is properly initialized and provider state updates are handled correctly
  • Component Communication - Verify proper event handling between SSO Config components and parent containers
  • Provider Discovery Issues - Check network connectivity, firewall rules, and provider endpoint accessibility

Performance Issues

  • Slow Configuration Loading - Optimize provider metadata caching, implement lazy loading for large provider lists
  • Authentication Delays - Monitor SSO handshake performance, optimize provider response handling
  • Memory Usage - Manage provider configuration state efficiently, implement proper cleanup for unused configurations

Implementation Support

Development Resources

  • TypeScript definitions for enhanced development experience
  • Integration examples for React, Angular, and Vue.js frameworks
  • Testing utilities and mock configurations for development

Advanced Configuration

  • Custom provider integration patterns
  • Multi-tenant SSO setup guidelines
  • Security best practices and compliance considerations

Resources

Storybook Documentation

For comprehensive API documentation, interactive examples, and testing tools: 📖 View Complete API Documentation in Storybook →


This guide provides high-level implementation guidance. For detailed API specifications and interactive examples, visit our Storybook documentation.