This guide refers to using SSO to authenticate access to your endpoints. You cannot use these instructions to set up SSO for logging into your ngrok account in the dashboard.
- Restrict access to ngrok endpoints only to users authenticated via Descope
- Use Descope security policies and MFA authenticators
- Use the Descope Console to facilitate access to ngrok apps
What you’ll need
- A Descope account with administrative rights to a Descope Project.
- An ngrok Pay-as-you-go account with an authtoken or admin access to configure endpoints with OpenID Connect.
1. Configure Descope
Add the ngrok app in Descope
- Open the Descope Console.
- On the left menu, click Applications, and then click + Application in the top right corner.
- In the popup window, enter
ngrokin the Name field, make sure thatOIDCis selected under Authentication protocol, and then click Create. - On the ngrok application page, make a note of the Issuer URL.
- Optional: If you wish to change the Auth Hosting URL to use a different flow for ngrok SSO, you can change that on this page, and click Save.
Create a client secret in Descope
- Go to Access Keys in the Descope Console.
- Click + Access Key in the top right corner.
- In the popup window, enter
ngrokin the Name field, change the Expiration time to whatever you prefer, and then click Generate Key. - Once the Access Key has been created, make a note of it for later.
2. Configure ngrok
ngrok can use Descope SSO in two ways:- From the ngrok CLI (using the
--oidcparameter) - From the ngrok dashboard
Option 1: ngrok CLI
This tutorial assumes you have an app running locally (for example, on
localhost:3000) with the ngrok client installed.- Launch a terminal.
-
Enter the following command to launch an ngrok tunnel with Descope SSO:
Replace the following with values:
DESCOPE_ISSUER_URL: This is your Issuer URL that you copied from the Applications page earlier.DESCOPE_CLIENT_ID: This is your Descope Project ID, which can be found under Project Settings in the Descope Console.DESCOPE_CLIENT_SECRET: This is the Descope Access Key that you created from earlier.
--url YOUR_DOMAINargument to get your custom URL, replacingYOUR_DOMAINwith your URL of preference. -
Copy the URL available next to Forwarding (for example,
https://descope-sso-test.ngrok.app). - Skip to Step 3.
Option 2: Traffic Policy
This tutorial assumes you have an app running locally (for example, on
localhost:3000) with the ngrok client installed.policy.yaml file with the following content, replacing the placeholder values with those copied from Descope:
https://descope-sso-test.ngrok.app).
3. Test the integration
- In your browser, launch an incognito window.
- Access your ngrok endpoint (for example,
https://descope-sso-test.ngrok.appor using the copied URL). - You should be prompted to log in with Descope.
- After logging in, you should be able to see your web app.