Set up OIDC-based single sign-on for customer portal
This topic is still work in progress.
To allow users to log in to customer portal with an OIDC identity provider's account (for example, with a Google account), you need a different solution than what memoQ TMS is using.
What you need
Before you start configuring, gather the information below. You will need these at different points during the process.
-
A settings.json file for your identity provider (or IDP) (find them in the C:\inetpub\wwwroot\CustomerPortalWeb\bin\oidc\examples folder:
-
The Subject value from the certificate the Authentication Manager will use. It should be a commercial (not self-signed) certificate. It can be the one your memoQ TMS uses. On the server machine, open the Manage Computer Certificates application (or run the certlm.msc command). Find the certificate in the Certificates - Local Computer/Personal/Certificate folder. Double-click the certificate, click the Details tab and write down the hostname in the Subject field (for example, *.mycompany.com).
-
A display name - the text on the "Sign in with IDP" button on the login page.
Configure the memoQ TMS environment for customer portal SSO
-
In the memoQ TMS deployment tool, install the latest versions of memoQ and customer portal.
Single sign-on is available for customer portal 11.3 and later.
You don't need to install memoQweb for this purpose.
-
After installing or updating memoQ TMS, in the deployment tool's memoQ TMS section, click Advanced -> Configure server, and go to the Network connection tab:
-
Check the Use API key checkbox at the bottom of the window, under Customer portal API key.
-
Click the Generate new API key link, and in the confirmation message, click OK.
-
A new customer portal API key appears in the text field. Copy the value and click Save.
-
In the customer portal section, click the Configure link. The Configure customer portal window opens:
To allow single sign-on to customer portal, choose SSO or memoQ or SSO in the Login options dropdown. Paste the API key from the previous step into the API key field. Click Save.
customer portal and memoQ TMS are now configured for single sign-on to customer portal.
Set up an OIDC provider
Set parameters for your ID provider
Note: As of May 2025, customer portal supports Azure AD, Google, Microsoft, Okta (both standard and custom), and OneLogin instances. If your company uses another OIDC-based ID provider service, contact our Business Services department, who can provide the resources you need.
The Customer Portal app is installed in the c:\inetpub\wwwroot folder. The bin subfolder contains CustomerPortal.SsoConfig.Tool.exe. You can use this tool to generate a json file for your IDP.
From the bin folder, double-click oidc, then examples. Choose the settings file for your company’s ID provider type (aad.settings.json, google.settings.json, microsoft.settings.json, oktaCustom.settings.json, oktaOrg.settings.json, or oneLogin.settings.json), and copy it to a temporary folder. Open it in a text editor, and add your values:
Parameter | Description |
---|---|
Template | The template file that you are filling in with the parameter values. DO NOT CHANGE! |
Parameters | See each sub-key's description below. |
Name | The ID provider’s name in the memoQ TMS database, the key value in the oidc.IDProviderSettings table.
Change as needed. |
DisplayName | The text on the ID provider's button you’ll see on the login page. Change as needed. |
ButtonIconUrl | URL for the ID provider’s icon that appears on the login page. There is a default icon URL, but you can set another one. |
ButtonBackgroundColor | Color for the ID provider’s button that appears on the login page. There is a default color, but you can set another one. |
ButtonTextColor | Text color for the ID provider’s button that appears on the login page. There is a default color, but you can set another one. |
ClientId | The Client ID that the ID provider generated for your memoQ TMS. You need to change the default value. |
ClientSecret |
The client secret or secret key you received when registering your memoQ TMS at this ID provider. You should not save the client secret into this unencrypted json file - unless it is absolutely necessary. Leave this value blank, and enter the client secret only when you set up the ID provider with the configuration tool. |
CallbackPath |
The last part of the callback URL that you registered at the ID provider. |
Scope | The OIDC scope that the Authentication Manager will send to the ID provider. By default, it includes all standard scope values. You can remove values as needed, but the scope must contain the openid value. Else, single sign-on will not work. |
Parameter | Description |
---|---|
Tenant | Your Microsoft Azure tenant. You need to change the default value. |
TenantId | Your Microsoft AzureB2C tenant. You need to change the default value. |
Domain | Your Microsoft Azure B2C domain. You need to change the default value. |
UserFlow | Your Microsoft Azure B2C user flow. You need to change the default value. |
OktaDomain | Your Okta domain. You need to change the default value. |
AuthServerId | Your Okta authorization server's ID. You need to change the default value. |
OktaOrg | Your Okta organization's base URL (without http://). You need to change the default value. |
Restart software components
At this point, you need to restart:
-
the memoQ TMS service
-
the IIS application pool that runs customer portal.
-
the Authentication Manager service in Windows's Services console
Make sure this service is set to Automatic, so that you do not need to start it manually after server machine restarts.
Example: Configure the Google identity provider
-
Take the file google.settings.json, copy it somewhere and open it up for modifications:
We can look up some explanatory text for the values needed in the c:\inetpub\wwwroot\{customer_portal_installation_name}\bin\oidc\templates directory. For our case we can check in the google.parameters.json file:
Based on these descriptions the settings file can be filled easily.
Once we are finished with it, open up a command window in the bin folder and run the CustomerPortal.SsoConfig.Tool.exe with a parameter: the path of the newly edited settings file:
Result should be as follows:
Now, under the c:\ProgramData\\oidc\providers directory we should find our new OIDC provider file with the name set in the google.settings.json for NAME field.
If all the input information is correct, we should see the GoogleExample option appear on the login screen of the Customer Portal:
A file generated on one PC cannot be used on another, because the client secret is encoded in the json file and can only be decoded on the same PC.