Umbraco SAML Single Sign-On (SSO) with Keycloak as IDP
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 Keyclock
considering Keyclock as IdP. To know more about the features we provide for
Umbraco SSO, click
here.
Select your umbraco version to configure SSO with:
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.
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.
Download
Umbraco SAML Single Sign-On (SSO) middleware.
For Setting up the middleware, you will be required to add the below namespaces, services and middleware
in your startup.cs file (marked in green), below here is a sample example
using miniorange.saml;using System.Reflection;namespace Application{public class Startup{ // Add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddUmbraco(_env, _config) .AddBackOffice() .AddWebsite() .AddComposers() .Build(); services.AddminiOrangeServices(Assembly.GetExecutingAssembly()); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseUmbraco() .WithMiddleware(u => { u.UseBackOffice(); u.UseWebsite(); u.AppBuilder.UseminiOrangeSAMLSSOMiddleware(); }) .WithEndpoints(u => { u.UseInstallerEndpoints(); u.UseBackOfficeEndpoints(); u.UseWebsiteEndpoints(); }); } } }
Run the application when the configuration is done.
After integration, open your browser and browse the plugin dashboard
with the URL below:
https://<umbraco-middleware-base-url>/?ssoaction=config
If the registration page or login page pops up, you have successfully
added the miniOrange Umbraco SAML middleware in your Umbraco
application.
Register or log in with your account by clicking the
Register button to configure the plugin
Download
Umbraco SAML Single Sign-On (SSO) middleware.
For Setting up the middleware, you will be required to add the below namespaces, services and middleware
in your program.cs file (marked in green), below here is a sample example
Run the application when the configuration is done.
After integration, open your browser and browse the plugin dashboard
with the URL below:
https://<umbraco-middleware-base-url>/?ssoaction=config
If the registration page or login page pops up, you have successfully
added the miniOrange Umbraco SAML middleware in your Umbraco
application.
Register or log in with your account by clicking the
Register button to configure the plugin
After Registration the license key activation page will get displayed. Here enter the license key
received on your registed email
If you didn't received the license key then click here
After integration, open your browser and browse the connector dashboard
with the URL below: https://<your-application-base-url>/?ssoaction=config
If the registration page or login page pops up, you have successfully
added the miniOrange Umbraco SAML SSO connector to your application.
Register or log in with your account by clicking the
Register button to configure the module.
1. 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:
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.
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.
Enter SP-EntityID / Issuer as the
Client ID from the "Service Provider Settings" Tab and
select SAML as the Client Protocol.
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 Settings tab
Valid Redirect URIs
The ACS (Assertion Consumer Service) URL from the
plugin's Service Provider Settings tab
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 Settings tab
Logout Service Redirect Binding URL (Optional)
The Single Logout URL from the plugin's Service
Provider Metadata tab
Click on Save.
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 Client button to create a new client/application.
Select SAML as Client type, Enter
SP-EntityID / Issuer as the Client ID from the "Service
Provider Metadata" Tab,Enter Name of your application and enter
Description.
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 Settings tab
Valid Redirect URIs
The
ACS (Assertion Consumer Service) URLfrom the
plugin's Service Provider Settings tab
Now click on Save.
In Advanced tab,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 Settings tab
Logout Service Redirect Binding URL (Optional)
The Single Logout URL from the plugin's Service
Provider Metadata tab
Click on Save.
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.
2. 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
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.
3. 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.
4. Attribute Mapping
Map your umbraco attributes with the Identity Provider (IdP) attributes.
Click on Save Attribute Mapping button to save the settings.
5. Login Type
The Umbraco platform supports two different ways of login:
Under the Login Setup tab, select Member login as your
preferred form of login and then click Save.
Under the Login Setup tab, select BackOffice login as your
preferred form of login and then click Save.
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.
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!
Contact miniOrange Support
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