Umbraco SAML Single Sign-On (SSO) using Keycloak as IDP | Keycloak SSO


Umbraco SAML Single Sign-On (SSO) plugin gives the ability to enable SAML Single Sign-On for your Umbraco applications. Using Single Sign-On you can use only one password to access your Umbraco application and services. Our plugin is compatible with all the SAML compliant identity providers. Here we will go through a step-by-step guide to configure Single Sign-On (SSO) between Umbraco and Keycloak considering Keycloak as IdP. To know more about the features we provide for Umbraco SSO, click here.

Pre-requisites : Download And Installation

  • Download Umbraco SAML Single Sign-On (SSO) module.
  • For Setting up the module, extract the umbraco-saml-sso-connector.zip, you will find a DLL file miniorange-saml-sso.dll, a configuration file saml.config and a integration.md file which contain the steps for adding the module into your application.

1. Add module in Umbraco Application

  • Add miniorange-saml-sso.dll in the bin folder (where your other DLL files exist) for your Umbraco site.
  • Register miniorangesamlsso module for your umbraco SSO according to the provided steps in the integration.md file.
  • Add the provided configuration file saml.config in the root directory for your umbraco site.
  • After integration open browser and browse the module dashboard with URL below:
    https://<umbraco-base-url>/?ssoaction=config
  • If it pops up the registration page or login page, you have successfully added the miniOrange saml sso module for your application.
  • Umbraco Single Sign-On (SSO) - Login Page
  • Register or Login for configuring the module.

2. Configure Keycloak as IDP

There are below two ways with which you can get the SAML SP metadata to configure on your identity provider end.

A] Using SAML metadata URL or metadata file:
  • Under the Service Provider Settings section, you can find the metadata URL as well as the option to download the SAML metadata
  • Copy metadata URL or download metadata file to configure the same on your identity provider end.
  • You can refer to the below screenshot:

    Umbraco Single Sign-On (SSO) - Service provider metadata
B] Uploading metadata manually:
  • From the Service Provider Settings section, you can copy the service provider metadata manually like SP Entity ID, ACS Url, Single Logout Url, and provide it to your identity provider for configuration.
  • You can refer to the below screenshot:

    Umbraco Single Sign-On (SSO) - Service provider metadata
  • In your Keycloak Admin console, select the realm that you want to use.
  • Click on Clients from the left menu and then click on Create button to create a new client/application.
  • Umbraco Single Sign-On (SSO) - Creating an APP
  • Enter SP-EntityID / Issuer as the Client ID from the "Service Provider Metadata" Tab and select SAML as the Client Protocol.
  • Umbraco Single Sign-On (SSO) - Add Client
  • Now click on Save.
  • Configure Keycloak by providing the required details:
  • Client ID The SP-EntityID / Issuer from the plugin's Service Provider Metadata tab
    Name Provide a name for this client
    Description Provide a description
    Client Signature Required OFF
    Force POST Binding OFF
    Force Name ID Format OFF
    Name ID Format Email
    Root URL Leave empty or Provide Base URL from Service Provider Metadata tab
    Valid Redirect URIs The ACS (Assertion Consumer Service) URL from the plugin's Service Provider Metadata tab
    Umbraco Single Sign-On (SSO) - Keycloak Login - Settings Umbraco Single Sign-On (SSO) - Keycloak Login - Settings
  • Under Fine Grain SAML Endpoint Configuration, Enter the following details:
  • Assertion Consumer Service POST Binding URL The ACS (Assertion Consumer Service) URL from the plugin's Service Provider Metadata tab
    Logout Service Redirect Binding URL (Optional) The Single Logout URL from the plugin's Service Provider Metadata tab
    Umbraco Single Sign-On (SSO) - Login SAML Endpoint Configuration
  • Click on Save.
Add Mapper
  • Navigate to Mappers tab and click on Add Builtin button.
  • Umbraco Single Sign-On (SSO) - Keycloak Login - Mappers Tab
  • Select the checkboxes of X500 givenName, X500 surname and X500 email attributes.
  • Umbraco Single Sign-On (SSO) - Keycloak Login - Add built-in protocol mapper
  • Click on Add Selected button. You will see the mappings that are added below.
  • Umbraco Single Sign-On (SSO) - Keycloak Login - Add Selected
Download Setup File
  • Navigate to Realm Settings, click on SAML 2.0 Identity Provider Metadata mentioned as Endpoints in the General Tab.
  • Umbraco Single Sign-On (SSO) - JBoss Keycloak
  • Note the URL and keep it handy. That will provide you with the Endpoints required to configure the plugin.

You have successfully configured Keycloak as SAML IdP ( Identity Provider) for achieving Keycloak login / Keycloak SSO / Keycloak Single Sign-On (SSO), ensuring secure Login into Umbraco application.

3. Configure Umbraco as SP

There are below two ways with which you can configure your SAML identity provider metadata in the module.

A] Upload metadata using the Upload IDP Metadata button:
  • If your identity provider has provided you with the metadata URL or metadata file (.xml format only) then you simply configure the identity provider metadata in the module using the Upload IdP Metadata option.
  • You can refer to the below screenshot

    Umbraco Single Sign-On (SSO) - Upload Metadata
  • You can choose any one of the options according to the metadata format you are available with.
B] Configure the identity provider metadata manually:
  • After configuring your Identity Provider, it will provide you with IDP Entity ID, IDP Single Sign On URL and x.509 Certificate. Configure these values under IDP Entity ID, Single Sign-On Url and SAML X509 Certificate fields respectively.
  • Click Save to save your IDP details.
  • Umbraco Single Sign-On (SSO) - test configuration

4. Test Configuration

  • Click on Test Configuration button to test whether the SAML configuration you’ve done is correct or not.
  • The below screenshot shows a successful result.
  • Umbraco Single Sign-On (SSO) - saml dll testconfig

5. Attribute Mapping

  • Map your umbraco attributes with the Identity Provider (IdP) attributes.
  • Umbraco Single Sign-On (SSO) - attribute mapping
  • Click on Save Attribute Mapping button to save the settings.

6. Login Settings

  • Use the following URL as a link in your Umbraco site from where you want to initiate SSO:
    https://umbraco-base-url/?ssoaction=login
  • For example you can use it as:
    <a href="https://umbraco-base-url/?ssoaction=login”>Login</a>"

7. Logout Settings

  • Use the following URL as a link in your Umbraco from where you want to perform SLO:
    https://umbraco-base-url/?ssoaction=logout
  • For example you can use it as:
    <a href="https://umbraco-base-url/?ssoaction=logout”>Logout</a>"

You can configure the Umbraco SAML 2.0 Single Sign-On (SSO) module with any Identity Providers such as ADFS, Azure AD, Bitium, Centrify, G Suite, WordPress, Okta, OneLogin, Salesforce, AWS Cognito, OpenAM, Oracle, PingFederate, PingOne, RSA SecureID, Shibboleth-2, Shibboleth-3, SimpleSAML, WSO2 or even with your own custom identity provider. Check the list of identity providers here.

8. Additional Resources

Need Help?

Not able to find your identity provider? Mail us on umbracosupport@xecurify.com and we'll help you set up SSO with your IDP and for quick guidance (via email/meeting) on your requirement and our team will help you to select the best suitable solution/plan as per your requirement.

Hello there!

Need Help? We are right here!

support
Contact miniOrange Support
success

Thanks for your inquiry.

If you dont hear from us within 24 hours, please feel free to send a follow up email to info@xecurify.com