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


nopCommerce SAML Single Sign-On (SSO) plugin gives the ability to enable SAML Single Sign-On for your nopCommerce applications. Using Single Sign-On you can use only one password to access your nopCommerce 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 nopCommerce and Keycloak considering Keycloak as IdP. To know more about the features we provide for nopCommerce SSO, click here.

Pre-requisites : Download And Installation

    Download from nopCommerce Dashboard
  • To download the plugin zip, login as admin into your nopCommerce store. In the admin dashboard, go to Configuration Tab > All Plugins and Themes or search for All Plugins and Themes in the Admin search bar.
  • Search for the SAML Single Sign-On (SSO) - miniOrange plugin and click the Download button to get the zip.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - install plugin
    From nopCommerce marketplace
  • You can download the plugin zip file from nopCommerce store - nopCommerce SAML Single Sign-On (SSO)
  • To install the plugin, login as admin into your nopCommerce website. In the admin dashboard, go to Configuration Tab >> Local plugins.
  • On the top right corner of the page select the Upload plugin or theme button to upload the downloaded plugin zip. Follow the instructions further to install the plugin.

Steps to configure nopCommerce Single Sign-On (SSO) using Keycloak as Identity Provider

1. Configure Keycloak as IDP

  • You need to send your SP metadata to identity provider, Keycloak. For SP metadata, use the SP metadata URL or download the SP metadata as a .xml file and upload it at your IdP end. You can find both these options under the Service Provider Metadata tab.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - SP metadata
  • Alternatively, you can manually add the SP Entity ID and ACS URL from Service Provider metadata tab in the plugin to your IdP configurations.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - SP table
  • 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.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Keycloak nopCommerce SSO Login
  • Enter SP-EntityID / Issuer as the Client ID from the "Service Provider Metadata" Tab and select SAML as the Client Protocol.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Keycloak nopCommerce SSO Login
  • 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
    nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Keycloak nopCommerce SSO Login nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Keycloak nopCommerce SSO Login
  • 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
    nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Keycloak nopCommerce SSO Login
  • Click on Save.
Add Mapper
  • Navigate to Mappers tab and click on Add Builtin button.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Keycloak nopCommerce SSO Login
  • Select the checkboxes of X500 givenName, X500 surname and X500 email attributes.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Add built-in protocol mapper
  • Click on Add Selected button. You will see the mappings that are added below.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Keycloak nopCommerce SSO Login
Download setup file
  • Navigate to Realm Settings, click on SAML 2.0 Identity Provider Metadata mentioned as Endpoints in the General Tab.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Keycloak nopCommerce SSO Login
  • 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 nopCommerce application.

2. Configure nopCommerce as SP (SSO Plugin)

Note: After installation of the plugin, we need to setup the trust between your nopCommerce application and your Keycloak account. SAML metadata is shared with Keycloak so they can update their inbuilt configuration to support Single Sign-On.

2.1: Share SP SAML metadata with Keycloak

  • Click on Add New IDP to configure nopCommerce Single Sign-On (SSO) using Keycloak as IDP.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Add new IDP
  • Under Service Provider Metadata tab, you can either copy-paste the metadata URL on your IDP side or download the SP metadata as an XML file. Additionally, you have the choice to manually copy and paste Base URL, SP Entity ID, and ACS URL.
  • Share SAML metadata with Keycloak.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - nopCommerce SP metadata

2.2: Import Keycloak SAML metadata

  • Under Identity Provider Settings tab, select Keycloak as your preferred identity provider.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Choose identity provider
  • There are two methods for configuring nopCommerce as service provider:
    • To upload IDP's metadata, you can either provide the metadata URL or upload XML file.
    • nopCommerce Single Sign-On (SSO) using Keycloak as IDP -  Upload IDP metadata
    • Alternatively, under the Identity Provider Settings tab, you can manually fill in the mandatory fields like IDP Name, IDP Entity ID and Single Sign-On URL and hit Save.
    • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - IDP Configuration

3. Testing SAML SSO

  • Before testing, please ensure the following:
    • The nopCommerce (SP) SAML metadata has been exported to Keycloak (IDP).
    • Importing the Keycloak (IDP) SAML metadata in nopCommerce (SP).
  • Hover on Select Action and click on the Test Configuration button to verify if you have configured the plugin correctly.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Click on Test Configuration
  • Click the Test Configuration button to verify if you have configured the plugin correctly.
  • On successful configuration, you will get Attribute Name and Attribute Values in Test Configuration window.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Test Configuration Result

4. Attribute Mapping

  • After successful test configuration, click on Edit Configuration and navigate to Attribute Mapping section.
  • On the right side, you can see the IDP response table, map attribute names provided by your IDP with your store attributes, under Attribute/Role Mapping tab.
  • Click on Save button.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Attribute Mapping

5. Enabling SSO in your nopCommerce store

  • Enable SSO for your nopCommerce store by dragging the slider as shown below.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Enable SSO
  • Under the Redirection & SSO link tab, use the URL labeled as Your Store SSO Link in your store to initiate the SSO.
  • nopCommerce Single Sign-On (SSO) using Keycloak as IDP - Store SSO Link

Additional Resources

Need Help?

Not able to find your identity provider? Mail us on nopcommercesupport@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