Single Sign-On for HubSpot application enables secure login into HubSpot CMS landing pages, blogs
and other pages using Keycloak as OAuth provider. It supports advanced Single Sign-On (SSO) features such as user
profile Attribute mapping, etc.
Here we will go through a guide to configure SSO between HubSpot and Keycloak. By the end of this guide, users
should be able to login to HubSpot from Keycloak. To know more about Single Sign-On for HubSpot
and other HubSpot Integrations, you can
click here.
Feel free to contact us at hubapps@xecurify.com to know more about how to install Single Sign-On for HubSpot.
Pre-requisites : Download And Installation
- Log into your HubSpot account as an admin.
-
Click here
to install Single Sign-On for HubSpot by miniOrange . Or you can install our app from
HubSpot App Marketplace
.
Steps to configure
Single Sign-On for HubSpot Login with Keycloak as Identity Provider
Step 1: Setup
Keycloak as OAuth Provider
- First of all, Download Keycloak and install it.
- Start the keycloak server based on your keycloak version. (See table below)
For the Keycloak Version 17 and above |
Go to the Root Directory of keycloak bin kc.bat and run the below commands.
1. kc.bat build
2. kc.bat start-dev
|
- Add Realm : Now login to Keycloak administration console and navigate to your desired realm. Click on master and then Create Realm button.
- Enter Realm Nameand click on Create button.
- Create OpenID client: Click on the Clients and choose Create Client to create a new client. Enter Client Id (It can be any character number, etc. Keep it handy as we will require it later while configuring miniOrange Single Sign-On app) and select client protocol openeid-connect and Click Next.
- Enable the Client Authentication and Authorization toggle and Click on next.
- In the Login settings and enter your Valid Redirect URL/Callback which you will get from your miniOrange Single-sign-on app present on your Client side under the CallBack URLs text field.
- Go to the Credentials tab, copy the Client Secret and keep it handy as we will require it later while configuring miniOrange Single Sign-On app.
- Add User: We need to add users to the realm who can perform SSO to get your HubSpot content. Click on the Users and Click on Create a new user to Add a new User.
- You can now create a user by filling out the required details and clicking the Create button.
- Now, go to Credentials to set up the password for the created user. Click on the Set Password button.
- Enter the password of your choice and click on the Save button.
Step 2: Setup HubSpotas OAuth Client
- Go to the miniOrange Single Sign-On (SSO) app and login with your credentials.
- Choose your account by clicking on Choose Account button.
- After that Click on the right icon for accessing the application.
- Go to the miniOrange’s Single Sign On app dashboard and click on App Configurations tab.
- Here, select your application and click on it. If your app is not present here you can create a custom OAUTH 2.0 or OIDC (Open ID Connect protocol) app as per your provider's implementation.
- Enter the Login Button Text and copy the Callback URL to set up the Identity Provider ( Third Party App) you would like to authenticate with.
- Now, to set up Single Sign-On ( OAuth SSO ) from the Identity Provider, you will need to enter the Client ID, Client secret,and Scope, and enable Send in Header and Endpoints from Keycloak (Refer the below table).
Client ID : |
from the step 1 above |
Client Secret : |
from the step 1 above |
Scope: |
openid |
Header / Body Setting |
Enable both the Header and Body
|
Authorize Endpoint: |
https://<keycloak domain>/realms/{realm-name}/protocol/openid-connect/auth |
Access Token Endpoint: |
https://<keycloak domain>/realms/{realm-name}/protocol/openid-connect/token |
Get User Info Endpoint: |
https://<keycloak domain>/realms/{realm-name}/protocol/openid-connect/userinfo |
- When you have filled out all the details, click the Save & Test Configuration button.
- After successful login, you will see all the values returned by your Keycloak to HubSpot in a table.
Step 3: Configure Page Restriction into the HubSpot ( Website, Landing Pages, Blogs, Knowledge Base )
Our Page Restriction feature allows you to protect your HubSpot website from unauthorized access. It is useful for securing sensitive information. Using this method, you can restrict access to HubSpot pages/content. Visitors will need to sign in before accessing HubSpot pages.
- After you have received the test configuration result, click on the Page Restriction tab.
- Select the checkbox next to the page you wish to protect from unauthorized users and click Save to save the information.
- Once you go to the page URL that you restricted, you will see the login window of your identity provider where you'll enter your credentials.
- After logged in, you will be redirected successfully to the website page.
Step 4: Configure Contact Sync in HubSpot
Contact synchronization is a powerful feature that enables seamless integration and synchronization of contact information between HubSpot and external platforms or applications. With Contact Sync, you can ensure that your customer data is up to date, accurate, and consistent across multiple systems, saving you time and eliminating manual data entry.
- To sync the contact details, go to the APP Configurations tab and choose the provider you created.
- Click on the Edit icon below the Contact Attribute Mapping option.
- You will see the HubSpot Contact Attributes and IDP Attributes option, Map your HubSpot contact attribute with a third-party application / IDP attribute received in the test configuration result. Additionally, if multiple attributes are required, you can add them using the Custom Attribute Mapping option.
- After adding all the attributes, make sure you have enabled the Contact sync option. Click on the Save button.
- You can now find the contact in HubSpot Contacts. This is a great way to generate leads, as it allows you to quickly and easily add new contacts to your HubSpot sales and marketing pipelines. Contact sync allows you to ensure that your HubSpot account is always updated with the latest information about your leads and customers (site visitors), which can help you generate more qualified leads.
Step 5: How to uninstall our app from a HubSpot portal
- To uninstall our app, go to your HubSpot account and click on Settings icon.
- Go to Integrations and click on Connected Apps.
- You will see the list of app, select our app and click on Actions button. And then click on Unistall option.
- Type "uninstall" below to continue and click uninstall button.
Step 6: How to disconnect the app from HubSpot?
- Go to the Page Restriction tab.
- Deselect your HubSpot pages as shown in the screenshot below and click on the Save button. This will disconnect our app for SSO from your HubSpot portal.
Congratulations! You have successfully disconnected HubSpot Single Sign-On by miniOrange application.
Troubleshooting / FAQs
How disconnecting and uninstalling affects users' HubSpot accounts and data?
Uninstalling removes the app and its configurations, preventing users from Single Sign-On (SSO) access to HubSpot pages. Disconnecting only detaches pages from SSO, leaving the app settings intact, and allowing for pages to be reconfigured for SSO access again.
I get the following: {"status":"failed","message":"Error in fetching the token from the OAuth provider."}
- Make sure you have checked one or both of the following checkboxes in the “HubSpot App configuration” setting.
- If your IdP needs the credentials in the header, you will need to check the Header checkbox.
- Save the configuration and then click test configuration.
- If this does not solve your problem, you can try selecting both the Header and Body checkboxes.
- Likewise, if your IdP needs the credentials in the body, you have to select the Body checkbox.
- Once you have checked the appropriate checkboxes, you will get the attributes table in the test configuration window.
My test configuration was successful but when I try to log in I am stuck in a redirect loop.
There are a couple of reasons why this can happen:
1. Caching is enabled on the website.
When auto-redirect is enabled, the user is redirected to IDP login page and after logging in back to the main site but as caching is enables it redirects to the IDP login page hence a loop.
2. HTTP/HTTPS discrepancy:
This happens when HTTPS is not enforced on the site but is configured on IDP side with HTTPS URL.This can be solved by enforcing HTTPS on the site by defining a redirect rule in the .htaccess file or at the Apache level.
3. Cookie adulteration:
The cookie created by the plugin after logging in the user is altered by another plugin which causes the user to not log in WordPress site but the session is created on IDP.
Getting Error : ‘Invalid Response’
There can be 2 possibilities:
- Either your App supports OAuth 2.0 protocol and you’ve configured with OpenID Connect protocol and vice-versa. In this case, if you’ve configured the App using Custom OAuth2.0 App, reconfigure it with Custom OpenID Connect App and if you’ve configured the App using Custom OpenID Connect App, reconfigure it with Custom OAuth 2.0 App. It should fix this issue for you.
- If the above solution doesn’t work then the other possibility is your app/provider doesn’t follow the standard OAuth 2.0/ OpenID Connect protocol. In this case, get in touch with hubapps@xecurify.com with your app/provider request/response format documentation and technician will get back to you with a solution.
I am getting the error message "Invalid response received"
To fix this issue, please configure the correct Token and User info endpoint in the HubSpot SSO application endpoint table. You can confirm the correct format of the endponit from HERE.
Additional Resources
Need Help?
Mail us on hubapps@xecurify.com 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.