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:Optional: identity details from Microsoft Graph
The Identities page can show each user’s name, email, job title, department, office location, country, account status, creation date, and last password change. These come from Microsoft Graph and need two application permissions on the same app registration:| Permission | What TigerGate reads |
|---|---|
User.Read.All | Users named in role assignments: profile, account status, creation date, last password change |
Application.Read.All | Service principals and managed identities named in role assignments: name and account status |
00000003-0000-0000-c000-000000000000 is Microsoft Graph; the two
=Role IDs are the User.Read.All and Application.Read.All application
permissions. In the portal, the same is App registrations → your app → API
permissions → Add a permission → Microsoft Graph → Application permissions,
then Grant admin consent. Granting consent to application permissions needs
an administrator role such as Global Administrator or Privileged Role
Administrator.
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) |
| Identities show object IDs instead of names | The Microsoft Graph permissions are not granted, or not admin-consented | Grant them as in identity details from Microsoft Graph |