Self-service SSO: letting customers configure their own identity providers

Introduction: The Need for Self-Service SSO

In the modern enterprise, the ability to manage identity in a self-service manner is no longer a luxury—it's a necessity. Customers increasingly want to configure their own identity providers (IdPs), such as Okta or Azure AD, without relying on their service providers for every step. This shift is driven by the desire for greater control, reduced operational overhead, and compliance with internal policies.

Bastionary, as a self-hosted platform for authentication, billing, licensing, and feature flags, provides the tools and infrastructure to enable this self-service model. By building a user interface (UI) that allows customers to configure their own IdPs, enterprises can significantly reduce the burden on their support teams and improve the overall customer experience.

Key Insight: Self-service SSO is not just about letting customers configure their IdPs—it's about giving them the tools, guidance, and confidence to do so without constant intervention.

Building the Self-Service SSO UI

Step 1: Define the Scope of the UI

The first step in building a self-service SSO UI is to clearly define what the UI will do. In this case, the UI will allow customers to:

  • Register their own identity provider (e.g., Okta, Azure AD)
  • Configure the necessary attributes and claims
  • Test the connection to ensure it's working
  • Link the IdP to their account in Bastionary

This ensures that the UI is focused and provides a clear path for the customer to follow.

Step 2: Implement the UI with Bastionary's API

To enable this functionality, Bastionary's API must be integrated into the UI. This allows customers to interact with the platform's backend services directly from the frontend.

For example, the following code snippet demonstrates how to use Bastionary's API to register an identity provider:


      const registerIdP = async (idpType, attributes) => {
        const response = await fetch('/api/idp/register', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
            'Authorization': 'Bearer '
          },
          body: JSON.stringify({
            idpType,
            attributes
          })
        });
      
        if (!response.ok) {
          throw new Error('Failed to register identity provider');
        }
      
        return response.json();
      };
      

This function allows customers to register their IdP with Bastionary's platform, using the API to ensure the operation is secure and reliable.

Warning: Always ensure that the API is used with proper authentication and authorization to prevent unauthorized access to the system.

Enabling the Self-Service Experience

Step 3: Provide Guidance and Support

While the UI allows customers to configure their own IdPs, it's important to provide them with the necessary guidance and support to ensure they can do so successfully.

This includes:

  • Providing clear instructions on how to register and configure an IdP
  • Offering examples of common IdP configurations
  • Providing access to documentation and support resources

By doing this, enterprises can ensure that customers are not only able to configure their IdPs but also understand how to do so effectively.

Step 4: