Skip to content

Wiz integration

Connect DXDT to Wiz using a read-only Service Account (OAuth2 client credentials) so DXDT can query open security issues, vulnerability findings, and projects to feed the Pulse security pillar.

Setup time ~15 minutes
Difficulty Moderate

Access required: Wiz tenant admin access to create a Service Account under Settings, scoped to read-only permissions.

Prerequisites

  • A Wiz tenant.
  • Permission to create a Service Account (Settings → Service Accounts / Access Management).
  • Your Wiz API (GraphQL) endpoint and OAuth token endpoint from the Wiz API docs.

Setup

1. Create a Wiz Service Account

In Wiz → Settings → Service Accounts (Access Management), create a new service account for DXDT and assign it read-only scopes only (for example read:issues, read:vulnerabilities, read:projects). Do not grant admin or write scopes.

Note

Choose the API-integration / custom-scope service account type so you can restrict it to read-only scopes.

2. Copy the client credentials

On creation, Wiz shows the Client ID and Client Secret. Copy both immediately — the secret is shown only once.

  • Client IDclient_id
  • Client Secretclient_secret

3. Find your API and auth endpoints

From the Wiz tenant's API docs / API Explorer, copy your tenant-specific GraphQL API endpoint (api_endpoint, for example https://api.<region>.app.wiz.io/graphql) and the Wiz auth endpoint used for the OAuth2 token exchange (auth_url, for example https://auth.app.wiz.io/oauth/token).

4. Enter the configuration in DXDT

Open the wiz plugin and fill Client ID (client_id), Client Secret (client_secret), API Endpoint (api_endpoint), and Auth URL (auth_url). On save, DXDT exchanges the credentials for a short-lived bearer token at auth_url and checks the GraphQL endpoint is reachable.

Configuration fields

Field Where to find it
Client ID (client_id) Wiz Settings → Service Accounts → the created service account's Client ID.
Client Secret (client_secret) Wiz service account → Client Secret (shown once at creation).
API Endpoint (api_endpoint) Wiz tenant API docs → your GraphQL API endpoint (https://api.<region>.app.wiz.io/graphql).
Auth URL (auth_url) Wiz API docs → the OAuth2 token endpoint used for the client-credentials exchange (for example https://auth.app.wiz.io/oauth/token).

Verify the connection

After saving, open the plugin Status view (or run the ping command). A healthy connection exchanges the credentials for a token and confirms the GraphQL endpoint is reachable; list issues returns without an auth error.

Security

DXDT makes only read-only Wiz GraphQL queries and exchanges credentials for short-lived bearer tokens on a stateless service. Grant the Service Account least-privilege read-only scopes only — never admin/write. The client_secret is stored encrypted; rotate it per your policy.

Troubleshooting

ping fails / token exchange error

Wrong client_id/client_secret, or the auth_url token endpoint is incorrect. Re-copy the service account credentials and confirm auth_url matches your Wiz tenant's OAuth2 token endpoint.

Token succeeds but GraphQL calls return 401/403

The service account lacks read scopes. Add read-only scopes (read:issues, read:vulnerabilities, read:projects) to the Wiz service account.

api_endpoint unreachable or 404

Wrong or region-mismatched GraphQL endpoint. Copy the exact GraphQL api_endpoint for your tenant/region from the Wiz API docs.

Some list commands return GraphQL field errors

The Wiz GraphQL schema varies slightly by tenant/version. DXDT surfaces the GraphQL error verbatim; confirm the scopes cover the requested objects — field selections may need per-tenant tuning.


Vendor documentation: https://docs.wiz.io/wiz-docs/docs/service-accounts