Keycloak Single Sign-On SSO Magento Setup Guide with OAuth OpenID Connect

Keycloak Single Sign-On SSO Magento Setup Guide with OAuth OpenID Connect


Integration of Keycloak Login ( Keycloak SSO ) with Magento using OAuth 2.0 Protocol. The Magento OAuth / OpenID Connect Single Sign-On (SSO) plugin makes it easy to use OAuth2 to set up Keycloak Login on Magento (Keycloak Single Sign on).

The plugin can be set up using other Social Media sources, as well as custom OAuth and OIDC providers. It contains a lot of Single Sign-On (SSO) features, like Attribute Mapping for user profiles, Role Mapping, and so on. In this guide, we'll go over how to set up SSO between Magento and Keycloak. At the end of this guide, users should be able to log into Magento using Keycloak. Click here to read more about the Magento OAuth Single Sign-On (OAuth & OpenID Connect Client) plugin's extra features.

The Magento OAuth & OpenID Connect Single Sign-On (SSO) plugin makes it possible to log into Magento securely using Keycloak as an OAuth and OpenID Connect provider. You can also use alternative Oauth providers, such as Azure AD, Azure B2C, Office 365, and other custom providers, to configure the plugin. Advanced Single Sign-On features such as user profile Attribute Mapping, Role Mapping, and so on are supported. We'll go over how to set up SSO between Magento and Keycloak in this article. Users should be able to log in to Magento through Keycloak by the end of this guide.

Click here to know more about other features we provide in Magento OAuth Single Sign-On ( OAuth & OpenID Connect Client ) plugin

Pre-requisites : Download And Installation

Installation using Composer:
  • Purchase the miniOrange OAuth / OpenID Connect Single Sign On extension from magento marketplace.
  • Go to My profile -> My Purchases
  • Please ensure you are using correct access keys (My Profile - Access Keys)
  • Paste the access keys in your auth.json file inside your project
  • Use the below command to add the extension to your project.
    "composer require {module_name}:{version}"
  • You can see the module name and list of versions in the selector below the extension module name.
  • Run the following commands on command prompt to enable the extension.
  • php bin/magento setup:di:compile
    php bin/magento setup:upgrade

Manual Installation:
  • Download the miniOrange OAuth OpenID Connect Single Sign-On extension.
  • Unzip all contents of the zip inside the MiniOrange/OAuth directory.
  • {Root Directory of Magento} app code MiniOrange OAuth
  • Run the following commands on command prompt to enable the extension.
  • php bin/magento setup:di:compile
    php bin/magento setup:upgrade

Magento OAuth OpenID Connect SSO extension allows login (Single Sign-On) into Magento with your Azure AD, Azure B2C, AWS Cognito, WSO2, Okta, LinkedIn, Google, Facebook, Slack, Discord or other custom OAuth 2.0 providers [24/7 SUPPORT]

 Tested with 2.4.4

Steps to configure Keycloak OAuth & OpenID Single Sign-On (SSO) Login into Magento

1. Setup Keycloak as OAuth Provider

Follow the steps below to configure Keycloak as OAuth Provider

miniorange img Configure Keycloak as OAuth Provider
  • First of all, Download Keycloak and install it.
  • Start Server: Start the keycloak server by running the _standalone.sh_ file

    Root Directory of keycloak/bin/standalone.sh

  • Add Realm: Now login to keycloak administration console and navigate to your desired realm. You can add new realm by selecting Add Realm option.
  • Keycloak SSO OAuth openid-connect Magento SSO add realm
  • Create Realm: Enter Realm Name and click on CREATE to add realm.
  • Create Role: The Role will be used by your applications to define which users will be authorized to access the application. Click on the Roles and choose Add Role.
  • Keycloak SSO OAuth openid-connect Magento SSO  Add Role
  • Add User: We need to add users to realm who will be able to access the resources of realm. Click on the Users and choose to Add a new User.
  • Keycloak SSO OAuth openid-connect Magento SSO Add User
  • User Configuration: After user is created following action needs to be performed on it.
    • Setting a password for it so click on Credentials and set a new Password for the user.
    • Keycloak SSO OAuth openid-connect Magento SSO Credentials

      NOTE : Disabling Temporary will make user password permanent


  • Map User: We need to map user to a role. Click on Role Mappings and assign the user desired role from available roles and clicking on add selected.
  • Keycloak SSO OAuth openid-connect Magento SSO Role Mapping
  • Create groups: Click on the Groups and choose New to create a new group.
  • Keycloak SSO OAuth openid-connect  Create Group
  • Assign user to group: Select the user whom you want to add in group. Choose Groups option from tab and then select the group-name and click on join.
  • Keycloak SSO OAuth openid-connect  Assign User to Group
  • Create OpenID client: Click on the Clients and choose create to create a new client. Enter any random string as Client ID and keep it handy because you will need it in the next step. Select client protocol openeid-connect and select Save.
  • Keycloak SSO OAuth openid-connect  Create Openid Connect
  • Enter Change Access Type: Afterclient is created change it's access type to confidential
  • Keycloak SSO OAuth openid-connect  Change Access Type
  • Enter Valid Redirect URLs: Copy callback URL (Enter from miniOrange Magento OAuth Single Sign On (SSO) plugin which you copied in the last step) in the last step and then click on SAVE.
    Ex -- https://oauth/callback
  • Keycloak Group Mapper: Now to get group details we need to perform its client mapping with group membership else group details will not be fetched. So in client select Mappers and then click on create. Select mapper type Group Membership and enter name and token claim-name i.e the attribute name corresponding which groups will be fetched and click on Save Keycloak SSO OAuth openid-connect  Group Mapper Magento SSO

    Note: -- If full path is on group path will be fetched else group name will be fetched.

  • Get Client Secret: Now we need to get client secret. So select Clients and select credentials and copy your secret from here.
  • Client secret Oauth SSO redentials Magento SSO

You have successfully configured Keycloak as OAuth Provider for achieving Keycloak Single Sign-On (SSO) with Magento for user authentication.

2. Configuring Magento 2 as OAuth Client

  • After successfully configuring OAuth Provider, go to OAuth Provider tab and configure OAuth Provider Name, Client ID, Client Secret, Scope and provided endpoints. (You can copy these values in STEP 2 from the application dashboard.)

    Please refer below Endpoints to configure the OAuth client


    Scope: email profile
    Authorize Endpoint: <Keycloak base URL>/realms/{realm-name}/protocol/openid-connect/auth
    Access Token Endpoint: <Keycloak base URL>/realms/{realm-name}/protocol/openid-connect/token
    Get User Info Endpoint: <Keycloak base URL>/realms/{realm-name}/protocol/openid-connect/userinfo
  • Click on the Save button to save the settings.
  • Click on the Test Configuration button.
  • Magento 2 OAuth credentials Keycloak SSO OAuth
  • You will see all the values returned by your OAuth Provider to Magento in a table. If you don't see value for First Name, Last Name, Email or Username, make the required settings in your OAuth Provider to return this information.
  • The miniOrange Premium Plugin also provides you the the feature to auto redirect your user to the IdP Login Page.
  • Magento 2 OAuth auto redirect to idp
  • Go to the Sign In Settings tab and check options to enable SSO on your Magento site.
  • Magento 2 OAuth enable SSO
  • You have successfully configured your Magento 2 as an OAuth Client. You will see the SSO button on your frontend. Click on the button and test the SSO.
  • Magento 2 OAuth SSO Keycloak SSO Keycloak magento SSO magento 2 OAuth client SSO Keycloak SSO

3: Attribute / Custom Mapping (Optional). *This is Premium feature.

  • You can map attributes in the Attribute Mapping tab. Only username and email are allowed to be mapped in free version of the plugin. However, in the premium version of the plugin, you can map various attributes coming from your OAuth Provider to the attributes present in your Magento site.
  • Magento 2 OAuth attribute mapping

4: Role Mapping (Optional). *This is Premium feature.

  • You can specify a default role in the free plugin that will be allocated to all non-admin users when they conduct SSO.
  • Go to Attribute/Role mapping tab and navigate to Role Mapping section.
  • Select the Default Role and click on the Save button.
  • Keycloak Magento SSO - Keycloak Single Sign-On(SSO) Login in Magento - role mapping

By configuring Keycloak as an OAuth Provider and Magento as an OAuth Client using our Magento OAuth Client plugin, you have successfully installed Magento Keycloak Single Sign-On (SSO). Within minutes, you'll be able to provide safe access to your Magento site utilising Keycloak login credentials thanks to this solution.

Additional Resources


If you are looking for anything which you cannot find, please drop us an email on magentosupport@xecurify.com

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