ASP.NET SAML Single Sign-On (SSO) using Keycloak as IDP
ASP.NET SAML SP Single Sign-On (SSO) module gives the ability to enable SAML
Single Sign-On for your ASP.NET applications. Using Single Sign-On you can use
only one password to access your ASP.NET application and services. Our module
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 ASP.NET
and Keycloak considering Keycloak as IdP.
To set up the module, extract the file
asp.net-saml-sso-module-xxx.zip. You will find a DLL named
miniorange-saml-sso.dll, a configuration file named
saml.config and an integration.md file which contains steps
for adding the module into your application.
Add miniorange-saml-sso.dll into your bin folder (where other DLL
files for your application exist).
Register minorangesamlsso module in your application according to the
steps provided in the file named integration.md.
Add the provided configuration file saml.config in the root directory
of your application.
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 SAML SSO connector to your application.
Register or log in with your account by clicking the Register button
to configure the module.
Steps to configure Keycloak Single Sign-On (SSO) Login into ASP.NET
1. Add Keycloak in ASP.NET SAML Module
Go to Plugin settings section and Choose Keycloak from the
list.
You will see the Service Provider Settings option, where you will get
the service provider metadata. You can have three options to provide the
metadata to your IDP. Keep the metadata handy as it will be required later
to configure step 2.
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.
3. Configure ASP.NET SAML Module as Service Provider
Go to the miniOrange ASP.NET SAML 2.0 SSO module and click on
Upload IDP Metadata button.
In the Metadata URL option, Paste the Metadata URL which you have
copied from your IDP and click on Fetch Metadata button.
Click Save to save your IDP details.
4. User Attribute Mapping
User Attribute Mapping is mandatory for enabling users to successfully login
into ASP.NET application. We will be setting up user profile attributes for
ASP.NET applications using below settings.
Click on the Test Configuration button to test whether the SAML
Configuration you’ve done is correct. On successful test configuration, you
will get the different user attributes returned by your identity Provider in
a test configuration table.
Once you see all the values in test configuration table, click on
Configure Attribute Mapping button.
You will be redirected to the Attribute Mapping section where you can
see that the user attribute as an autofield.
Note: All the mapped attributes will be stored in the session so that you
can access them in your application.
Click on Save Attribute Mapping button.
6. Integration Code
You can also find the Integration code in the Integration Code tab in
the module. Just copy-paste that code snippet wherever you want to access
the user attributes.
Note: All the mapped attributes will be stored in the session so that you
can access them in your application.
7. Login Settings
Use the following URL as a link in your application from where you want to
perform SSO:
You can configure the DotNetNuke SAML 2.0 Single Sign-On (SSO) module with any
Identity Provider such as
ADFS, Azure AD, Bitium, centrify, G Suite, JBoss Keycloak, 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.
If you are looking to Single Sign-On into your sites with any SAML compliant
Identity Provider then we have a separate solution for that. We do provide SSO
solutions for the following: