Identity Provider Setup Guide
This guide walks your IT/identity team through registering Paperless Forms with your Okta so your organization's users can sign in to Paperless Forms using your existing single sign-on.
Overview
Paperless ships in two main applications:
Application | Where it runs |
Paperless Forms iPad & Windows App | iPad and Windows devices |
Paperless Forms Website (Admin) | A browser, used by administrators and support |
Paperless Forms Web App | iOS, Windows and Android devices |
Each one needs its own registration in your identity provider, because they authenticate differently (a mobile/desktop app uses different OAuth flows than a website).
You will create two or three app registrations total, then share their identifiers with Paperless Forms support, who will activate SSO for your organization.
Before you start
Have ready:
Admin access to your Okta admin console
A test user account you can use to verify the setup
~30 minutes
Then, decide on:
Whether all users in your organization can use Paperless Forms via SSO, or only specific groups
Okta Setup
ℹ️ If your organization uses Microsoft Entra ID instead, go to the Microsoft Entra ID procedure |
Step 1 — Create the Paperless Forms iOS/Windows App (for the iOS & Windows version on devices)
Sign in to your Okta admin console (e.g.,
https://yourcompany-admin.okta.com)From the left menu, go to Applications and Resources → Applications
Click Create App Integration
Select Classic experience
Select:
Sign-in method: OIDC - OpenID Connect
Application type: Native Application
Click Next
In General Settings:
For App integration name, use Paperless App, or anything you prefer
For Client definition, select Use Okta-generated client ID
For Proof of possession, leave unchecked
For Grant type, make sure to check both options as they are required:
Authorization Code
Refresh Token
For Sign-in redirect URIs, remove the default value(s) and add both of the following (one per line):
http://localhost:7890/callbackca.datahex.paperless://oauth/callback
For Sign-out redirect URIs, leave empty/remove the default value(s)
For Assignments, choose who can use Paperless Forms:
Allow everyone in your organization to access
For Enable immediate access, keep this option checked according to your preference
OR
Limit access to selected groups, which you can use to pick a specific Okta group
Specify the Selected group(s) that will have access
Click Save
In the app's General tab, verify under Client Credentials:
For Client authentication, select None
For Proof Key for Code Exchange (PKCE), check the option Require PKCE as additional verification
Create a new Text (.txt) document
Create a line called
Paperless App ID:Copy the Client ID from the app's General tab, which is a long string starting with
0oa...Paste it in the Text document next to
Paperless App ID:Continue to the next step to gather the next ID
Step 2 — Create the Paperless Website App (for the admin website)
Sign in to your Okta admin console (e.g.,
https://yourcompany-admin.okta.com)From the left menu, go to Applications and Resources → Applications
Click Create App Integration
Select Classic experience
Select:
Sign-in method: OIDC - OpenID Connect
Application type: Single-Page Application
Click Next
In General Settings:
For App integration name, use Paperless Website, or anything you prefer
For Client definition, select Use Okta-generated client ID
For Proof of possession, leave unchecked
For Grant type, make sure to check both options as they are required:
Authorization Code
Refresh Token
For Sign-in redirect URIs, add:
If your database is on the US infrastructure:
https://paperless.datahex.ca/Login/SsoCallbackIf your database is on the CA infrastructure:
https://ca-paperless.datahex.ca/Login/SsoCallback
For Sign-out redirect URIs, leave empty/remove the default value(s)
For Trusted Origins, leave empty/remove the default value(s)
For Assignments, choose who can use Paperless Forms:
Allow everyone in your organization to access
For Enable immediate access, keep this option checked according to your preference
OR
Limit access to selected groups, which you can use to pick a specific Okta group
Specify the Selected group(s) that will have access
Click Save
In the app's General tab, verify under Client Credentials:
For Client authentication, select None
For Proof Key for Code Exchange (PKCE), check the option Require PKCE as additional verification
Create a new Text (.txt) document
Create a line called
Paperless Website ID:Copy the Website ID from the app's General tab, which is a long string starting with
0oa...Paste it in the Text document next to
Paperless Website ID:If you are using the Paperless Forms Web App, continue to the next step to gather the next ID
Step 3 — Create the Paperless Forms WebApp App (for the Web App version on devices)
ℹ️ If you are not using the Web App version, this step is unecessary. |
Sign in to your Okta admin console (e.g.,
https://yourcompany-admin.okta.com)From the left menu, go to Applications and Resources → Applications
Click Create App Integration
Select Classic experience
Select:
Sign-in method: OIDC - OpenID Connect
Application type: Single-Page Application
Click Next
In General Settings:
For App integration name, use Paperless WebApp, or anything you prefer
For Client definition, select Use Okta-generated client ID
For Proof of possession, leave unchecked
For Grant type, make sure to check both options as they are required:
Authorization Code
Refresh Token
For Sign-in redirect URIs, add:
If your database is on the US infrastructure:
https://paperless-webapp.datahex.ca/sso/callbackIf your database is on the CA infrastructure:
https://ca-paperless-webapp.datahex.ca/sso/callback
For Sign-out redirect URIs, add:
If your database is on the US infrastructure:
https://paperless-webapp.datahex.caIf your database is on the CA infrastructure:
https://ca-paperless-webapp.datahex.ca
For Trusted Origins, add:
If your database is on the US infrastructure:
https://paperless-webapp.datahex.caIf your database is on the CA infrastructure:
https://ca-paperless-webapp.datahex.ca
For Assignments, choose who can use Paperless Forms:
Allow everyone in your organization to access
For Enable immediate access, keep this option checked according to your preference
OR
Limit access to selected groups, which you can use to pick a specific Okta group
Specify the Selected group(s) that will have access
Click Save
In the app's General tab, verify under Client Credentials:
For Client authentication, select None
For Proof Key for Code Exchange (PKCE), check the option Require PKCE as additional verification
Create a new Text (.txt) document
Create a line called
Paperless WebApp ID:Copy the WebApp ID from the app's General tab, which is a long string starting with
0oa...Paste it in the Text document next to
Paperless WebApp ID:
Step 4 — Allow both apps in the authorization server policy
Okta has a separate set of policies controlling which apps can request tokens.
By default, new apps may not be permitted.
Go to Security → API → Authorization Servers
Click the default authorization server
Click the Access Policies tab
Click Add Policy
In Add Policy:
Name the policy
Add a Description
In Assign to, choose The following clients and add:
Paperless App (or the name you gave it in Step 1)
Paperless Website (or the name you gave it in Step 2)
Optionally, Paperless WebApp (or the name you gave it in Step 3)
Click Create Policy
At the bottom of the new policy, click on Add rule:
Name the rule
For Grant type, select Core grants → Authorization Code, uncheck Device Authorization
For User, select Any user assigned the app
For Scopes requested, select The following scopes and add:
openidprofileemailoffline_access
For Use this inline hook, select None (disabled)
For Access token lifetime, select your preference
For Refresh token lifetime, select your preference
Click Create rule
Make sure the Status is set to Active
Step 5 — Send the credentials to Paperless Forms' team
Email Paperless Forms support the Text document that was built over the previous steps.
Identity provider: Okta
Okta domain (Authority): e.g.,
https://yourcompany.okta.com/oauth2/defaultPaperless App ID: The
0oa...value from Step 1Paperless Website ID: The
0oa...value from Step 2Paperless WebApp ID: The
0oa...value from Step 3, optionally
Paperless Forms support will enable SSO for your account using these values.
Common pitfalls
Why does Paperless need up to three apps?
Mobile/desktop apps use a different OAuth flow than browser apps. Identity providers require separate registrations because they have different redirect URI requirements (custom URL schemes vs. HTTPS).
My Okta app keeps showing invalid_token_endpoint_auth_method during testing.
This means that the application was created or configured with Client authentication set to Client secret.
Go to Applications and ressources → Applications
Click on the app you want to edit
In the General tab, edit the Client authentication from Secret client to None
My users get no_matching_policy when signing in
Step 4 of the Okta setup is incomplete.
Go to Security → API → Authorization Servers
Click the default authorization server
In the Access Policies tab, ensure that the applications created in Steps 1 and 2 (and optionally 3) have the rule created in Step 4 assigned to them, and that its Status is set to Active
My users get access denied even though they're in Okta
Go to Applications and ressources → Applications
Click on the app you want to edit
In the Assignments tab, add the group(s) or set the application to Allow everyone in your organization to access
Can we reuse one app for both Device and Web?
In Okta: No, the app types are different (Native vs. Single-Page Application) and the allowed redirect URI formats don't overlap.
In Microsoft Entra: Technically possible (one app with multiple platform configurations), but we recommend separate apps for better audit logging and per-platform policy control.
Will users see a consent screen?
The first time a user signs in, they may be prompted to consent to the requested permissions (the "openid", "profile", "email" claims).
For Microsoft Entra, an admin can pre-grant consent for the entire tenant under API permissions → Grant admin consent to skip this.
What happens after setup
Once you provide the Client IDs and Authority to Paperless Forms support:
Paperless Forms support enables SSO for your organization
Your users open Paperless Forms on their devices, sign in with their Paperless Forms username and password as usual
After validating their Paperless Forms credentials, the app will redirect them to your identity provider's sign-in page (Okta or Microsoft sign-in)
After they sign in with their company SSO credentials, they're returned to Paperless Forms and can use the app normally
The same flow applies for the Paperless website.
If a user's identity provider account is later disabled (e.g., they leave the company), they will lose access to Paperless within a short period — even if their Paperless Forms password still exists, the SSO check will fail.


































