az CLI script
sets it up.
The service principal only needs the built-in Reader + Security
Reader roles — both read-only. TigerGate can never create, modify, or
delete resources in your subscription.
Before you start
In TigerGate, open Integrations → Cloud Providers and start a new Microsoft Azure connection. You’ll fill in four values once the service principal exists:| Value | What it is |
|---|---|
| Subscription ID | The Azure subscription TigerGate scans. |
| Tenant ID | Your Azure AD tenant ID. |
| Client ID | The App Registration’s application (client) ID. |
| Client Secret | A secret generated for the App Registration. |
1. Create the service principal
Create the App Registration + service principal
appId (Client ID), password (Client
Secret, shown once — save it now), and tenant (Tenant ID). This
already assigns Reader; the next step adds Security Reader.2. Connect it in TigerGate
Paste the four values
In Integrations → Cloud Providers, add a Microsoft Azure
connection and enter Subscription ID, Tenant ID, Client ID,
and Client Secret from step 1.
Test
Click Test. TigerGate mints a token from the service principal and does
a live Azure Resource Manager
subscriptions.get call to confirm the
connection works — or tells you the exact Azure AD reason (bad secret,
wrong tenant, role not assigned) so you can fix it before saving.Multiple subscriptions (Management Group)
To scan every subscription under a Management Group instead of one, scope both role assignments to the Management Group rather than a single subscription:Alternative auth modes
Self-hosted deployments can use managed identity, Azure CLI (az login)
session auth, or interactive browser auth instead of a stored client secret.
These paths aren’t exposed in the SaaS dashboard form (service-principal
secret is the only supported SaaS path); contact support if you’re running
TigerGate on-prem and want to use one of them.
Troubleshooting
| Scan/Test error | Cause | Fix |
|---|---|---|
AADSTS700016 — application not found | Wrong Client ID, or app registration deleted | Re-check the Client ID; recreate the app registration if it was deleted |
AADSTS700038 — invalid client identifier | Client ID doesn’t match the tenant, or is malformed | Re-check Tenant ID + Client ID are from the same app registration |
AADSTS7000215 invalid client secret | The Secret ID (a GUID, shown in the “Secret ID” column) was pasted instead of the Value column — the actual secret string. The Value is only shown once, right after creation | Go to Certificates & secrets, generate a new secret, and copy the Value column this time (not Secret ID) — update the connection |
AADSTS7000222 invalid/expired client secret | The 1-year expiry passed | Generate a new secret (az ad app credential reset) and update the connection |
AuthorizationFailed on the ARM check | Reader / Security Reader not assigned at the right scope | Re-run the az role assignment create commands against the exact subscription (or Management Group) ID |
| Scan runs but few findings | Only Reader assigned, not Security Reader | Assign both roles (step 2 above) |