You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To run the full Prowler provider, including PowerShell checks, two types of permission scopes must be set in **Microsoft Entra ID**.
22
35
23
-
### Application Permissions for App-Only Authentication
36
+
####Application Permissions for App-Only Authentication
24
37
25
38
When using service principal authentication, add these **Application Permissions**:
26
39
@@ -44,6 +57,7 @@ When using service principal authentication, add these **Application Permissions
44
57
These permissions enable application-based authentication methods (client secret and certificate). Using certificate-based authentication is the recommended way to run the full M365 provider, including PowerShell checks.
45
58
46
59
</Note>
60
+
47
61
### Browser Authentication Permissions
48
62
49
63
When using browser authentication, permissions are delegated to the user, so the user must have the appropriate permissions rather than the application.
@@ -52,37 +66,38 @@ When using browser authentication, permissions are delegated to the user, so the
52
66
Browser and Azure CLI authentication methods limit scanning capabilities to checks that operate through Microsoft Graph API. Checks requiring PowerShell modules will not execute, as they need application-level permissions that cannot be delegated through browser authentication.
53
67
54
68
</Warning>
69
+
55
70
### Step-by-Step Permission Assignment
56
71
57
72
#### Create Application Registration
58
73
59
-
1. Access **Microsoft Entra ID**
74
+
1. Access **Microsoft Entra ID**.
60
75
61
76

62
77
63
-
2. Navigate to "Applications" > "App registrations"
78
+
2. Navigate to "Applications" > "App registrations".
For the **Prowler App**, paste the Base64-encoded PFX in the `certificate_content` field when you configure the provider secrets. The platform persists the encrypted certificate and supplies it during scans.
229
+
The CLI still needs `AZURE_CLIENT_ID` and `AZURE_TENANT_ID`in the environment when `--certificate-path` is used.
219
230
220
231
<Note>
221
232
Do not mix certificate authentication with a client secret. Provide either a certificate **or** a secret to the application registration and Prowler configuration.
If these variables are not set or exported, execution using `--sp-env-auth` will fail.
243
-
244
-
Refer to the [Step-by-Step Permission Assignment](#step-by-step-permission-assignment) section below for setup instructions.
245
-
246
-
If the external API permissions described in the mentioned section above are not added only checks that work through MS Graph will be executed. This means that the full provider will not be executed.
247
-
248
-
This workflow is helpful for initial validation or temporary access. Plan to transition to certificate-based authentication to remove long-lived secrets and keep full provider coverage in unattended environments.
252
+
If these variables are not set or exported, execution using `--sp-env-auth` will fail. This workflow is helpful for initial validation or temporary access. Plan to transition to certificate-based authentication to remove long-lived secrets and keep full provider coverage in unattended environments.
249
253
250
254
<Note>
251
255
To scan every M365 check, ensure the required permissions are added to the application registration. Refer to the [PowerShell Module Permissions](#grant-powershell-module-permissions-for-app-only-authentication) section for more information.
252
256
253
257
</Note>
254
258
255
-
### Run Prowler with Certificate Authentication
259
+
If the external API permissions described above are not added, only checks that work through Microsoft Graph will be executed. This means that the full provider will not be executed.
256
260
257
-
After the variables or path are in place, run the Microsoft 365 provider as usual:
261
+
## Prowler Cloud Authentication
262
+
263
+
Use the shared permissions and credentials above, then complete the Microsoft 365 provider form in Prowler Cloud. The platform persists the encrypted credentials and supplies them during scans.
The command above initializes PowerShell modules if needed. You can combine other standard flags (for example, `--region M365USGovernment` or custom outputs) with `--certificate-auth`.
291
+
Prowler prints the certificate thumbprint during execution so the correct credential can be verified.
264
292
265
-
Prowler prints the certificate thumbprint during execution so you can confirm the correct credential is in use.
If you prefer to reuse the same service principal that powers certificate-based authentication, authenticate it through Azure CLI instead of exporting environment variables. Azure CLI expects the certificate in PEM format; convert the PFX produced earlier and sign in:
316
+
If reusing the same service principal that powers certificate-based authentication, authenticate it through Azure CLI instead of exporting environment variables. Azure CLI expects the certificate in PEM format; convert the PFX produced earlier and sign in:
The Azure CLI identity must hold the same Microsoft Graph and external API permissions required for the full provider. Signing in with a user account limits the scan to delegated Microsoft Graph endpoints and skips PowerShell-based checks. Use a service principal with the necessary application permissions to keep complete coverage.
299
333
300
-
## Interactive Browser Authentication
301
-
302
-
_Available only for Prowler CLI_
334
+
### Interactive Browser Authentication
303
335
304
-
**Authentication flag:**`--browser-auth`
336
+
**Authentication flag for CLI:**`--browser-auth`
305
337
306
338
Authenticate against Azure using the default browser to start the scan. The `--tenant-id` flag is also required.
0 commit comments