Microsoft Entra ID Setup Guide
This guide walks your IT/identity team through registering Paperless Forms with Microsoft Entra ID 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 to 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 identity provider (Microsoft Azure admin center)
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
Microsoft Entra ID Setup
ℹ️ If your organization uses Okta instead, head over to the Okta procedure |
Step 1 — Create the Paperless Forms iOS/Windows App (for the iOS & Windows version on devices)
Sign in to Microsoft Azure admin center (https://entra.microsoft.com)
Go to Identity → Applications → App registrations
Click ➕ New registration
While registering the application:
For Name, use Paperless App, or anything you prefer
For Supported account types, select Single tenant only
For Redirect URI:
Select Public client/native (mobile and desktop applications)
Add the address
http://localhost:7890/callback
Click Register
Create a new Text (.txt) document
Create a line called
Paperless App ID:Copy the Application (client) ID from the app's General page, which is a long string
Paste it in the Text document next to
Paperless App ID:In the left menu, click Manage → Authentication (Preview)
From the Redirect URI configuration tab, click ➕ Add Redirect URI
Select Mobile and desktop applications
Add the following custom redirect URIs:
com.peak.pelican://oauth/callbackClick Configure
Still on the Authentication (Preview) page, from the Settings tab
Set Allow public client flows to Enabled
Click Save
In the left menu, click Manage → API permissions
Click ➕ Add a permission
Select Microsoft Graph
Select Delegated permissions, then select:
emailoffline_accessopenidprofile
Click Add permissions
Still on the API permissions page, click on ✔️Grant admin consent for [...]
In the left menu, click Manage → Token configuration
Click ➕ Add optional claim
For the Token type, select ID, then select:
emailpreferred_username
Click Add
Continue to the next step to gather the next ID
Step 2 — Create the Paperless Website App (for the admin website)
Sign in to Microsoft Azure admin center (https://entra.microsoft.com)
Go to Identity → Applications → App registrations
Click ➕ New registration
While registering the application:
For Name, use Paperless Website, or anything you prefer
For Supported account types, select Single tenant only
For Redirect URI:
Select Single-page application (SPA)
If you are on the US infrastructure, add the address
https://paperless.datahex.ca/Login/SsoCallback
or if you are on the Canadian infrastructure, add the address
https://ca-paperless.datahex.ca/Login/SsoCallback

Click Register
Create a new Text (.txt) document
Create a line called
Paperless Website ID:Copy the Application (client) ID from the app's General page, which is a long string
Paste it in the Text document next to
Paperless Website ID:In the left menu, click Manage → Certificates & secrets
From the Client secrets tab, click ➕ New client secret
For Description, use Paperless Website Secret, or anything you prefer
For Expires, preferably select the longest available option, but ultimately go with the option that suits your need the most
Click Add
Copy the Value from the Paperless Website Secret, which is a long string
Create a line called
Paperless Website Secret:in the Text documentPaste it in the Text document next to
Paperless Website Secret:In the left menu, click Manage → API permissions
Click ➕ Add a permission
Select Microsoft Graph
Select Delegated permissions, then select:
emailoffline_accessopenidprofile
Click Add permissions
Still on the API permissions page, click on ✔️Grant admin consent for [...]
In the left menu, click Manage → Token configuration
Click ➕ Add optional claim
For the Token type, select ID, then select:
emailpreferred_username
Click Add
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)
Sign in to Microsoft Azure admin center (https://entra.microsoft.com)
Go to Identity → Applications → App registrations
Click ➕ New registration
While registering the application:
For Name, use Paperless WebApp, or anything you prefer
For Supported account types, select Single tenant only
For Redirect URI:
Select Single-page application (SPA)
If you are on the US infrastructure, add the address
https://paperless-webapp.datahex.ca/sso/callback
or if you are on the Canadian infrastructure, add the address
https://ca-paperless-webapp.datahex.ca/sso/callback
Click Register
Create a new Text (.txt) document
Create a line called
Paperless WebApp ID:Copy the Application (client) ID from the app's General page, which is a long string
Paste it in the Text document next to
Paperless WebApp ID:In the left menu, click Manage → Authentication (Preview)
From the Settings tab, in Front-channel logout URL if you are on the US infrastructure, add the address
https://paperless-webapp.datahex.ca
or if you are on the Canadian infrastructure, add the address
https://ca-paperless-webapp.datahex.caIn the left menu, click Manage → API permissions
Click ➕ Add a permission
Select Microsoft Graph
Select Delegated permissions, then select:
emailoffline_accessopenidprofile
Click Add permissions
Still on the API permissions page, click on ✔️Grant admin consent for [...]
In the left menu, click Manage → Token configuration
Click ➕ Add optional claim
For the Token type, select ID, then select:
emailpreferred_username
Click Add
Step 4 — Send the credentials to Paperless Forms' team
Email Paperless Forms support the Text document that was built over the previous steps.
Identity provider: Entra ID
Tenant ID: a long string from your Microsoft Azure home page (e.g., "
12345678-1234-1234-1234-123456789abc")Paperless App ID: The value from Step 1
Paperless Website ID: The first value from Step 2
Paperless Website Secret: The second value from Step 2
Paperless WebApp ID: The 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.











































