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
The connector requires read access to Fabric workspaces, items, and connections. The specific permissions depend on your authentication method, but the identity you use must have:
45
-
46
-
-**Workspace access**: The identity must be added as a workspace member (Viewer or above) for each workspace you want to ingest
44
+
The connector requires **Contributor** role on each workspace. Contributor is needed to fetch pipeline definitions without it, the connector will list pipelines but fail to read their activities and lineage.
47
45
48
46
##### Delegated (on behalf of a user) authentication
49
47
50
-
If using delegated auth (e.g., Azure CLI), request the following Fabric API scopes via Microsoft Entra ID:
48
+
If using delegated auth (e.g., Azure CLI), the signed-in user's existing Fabric permissions apply directly. The connector requires the following delegated scopes:
51
49
52
-
-`Workspace.Read.All` — to list and read workspaces
53
-
-`Item.Read.All` — to list and read items (pipelines, activities)
54
-
-`Connection.Read.All` — to list and read connections for lineage resolution
55
-
For execution history, additionally request:
50
+
-`Workspace.Read.All` or `Workspace.ReadWrite.All` — for listing workspaces and items
51
+
-`Item.ReadWrite.All` or `DataPipeline.ReadWrite.All` — for Get Item Definition, List Item Connections, and Query Activity Runs (`Item.Read.All` is **not** sufficient for definitions and connections)
52
+
-`Item.Read.All` or `DataPipeline.Read.All` — sufficient for List Item Job Instances (execution history)
56
53
57
-
-`Item.Execute.All` — to query pipeline and activity runs
54
+
The Azure CLI token includes the necessary Fabric API scopes by default.
58
55
59
56
##### Service Principal and Managed Identity authentication
60
57
61
-
Service principals and managed identities do not use delegated scopes. Instead, you need to:
58
+
Service principals and managed identities do not inherit any permissions by default. You need to:
62
59
63
60
1.**Enable API access**: A Fabric admin must enable the service principal tenant settings (see **Fabric Admin Settings** below)
64
-
2.**Grant workspace access**: Add the SP or MI as a workspace member (Viewer or above) for each workspace you want to ingest
65
-
3.**Grant connection access**: The SP or MI must have permission on the Fabric connections used by pipelines, so that the connector can read connection details for lineage resolution
61
+
2.**Grant workspace access**: Add the SP or MI as a workspace **Contributor** for each workspace you want to ingest
66
62
67
63
#### Fabric Admin Settings
68
64
69
65
:::warning
70
-
For **service principal** and **managed identity** authentication, a Fabric administrator must enable API access for service principals in the Fabric admin portal. Without this, API calls will fail with 401/403 errors even if permissions are correctly assigned.
66
+
For **service principal** and **managed identity** authentication, a Fabric administrator must enable API access for service principals in the Fabric admin portal. Without this, API calls will fail with 401 errors even if workspace permissions are correctly assigned.
71
67
:::
72
68
73
69
As of mid-2025, Microsoft split the original single tenant setting into two separate settings. Configure them as follows:
@@ -76,10 +72,12 @@ As of mid-2025, Microsoft split the original single tenant setting into two sepa
76
72
2. Under **Developer settings**, enable the applicable setting(s):
77
73
-**Service principals can call Fabric public APIs** — Controls access to CRUD APIs protected by the Fabric permission model (e.g., reading workspaces and items). This is **enabled by default** for new tenants since August 2025.
78
74
-**Service principals can create workspaces, connections, and deployment pipelines** — Controls access to global APIs not protected by Fabric permissions. This is **disabled by default**. Enable only if needed.
79
-
3.Choose whether to enable for the entire organization or restrict to a specific security group. It is recommended to restrict access to a dedicated security group containing only the service principals that need API access.
75
+
3.Restrict access to a dedicated **security group** containing only the service principals that need API access. This is the recommended approach.
80
76
81
77
> **Note**: If you are on an older tenant where the legacy single setting **Service principals can use Fabric APIs** is still visible, enable that instead. It will be automatically migrated to the two new settings.
82
78
79
+
> **Note**: Tenant setting changes can take **up to 15 minutes** to propagate. If you receive 401 errors immediately after enabling, wait and retry.
80
+
83
81
For detailed instructions, see [Developer admin settings](https://learn.microsoft.com/en-us/fabric/admin/service-admin-portal-developer) and [Identity support for Fabric REST APIs](https://learn.microsoft.com/en-us/rest/api/fabric/articles/identity-support).
84
82
85
83
#### Authentication
@@ -88,7 +86,11 @@ The connector supports four authentication methods via the shared `credential` c
88
86
89
87
##### Service Principal (recommended for production)
90
88
91
-
Register an application in [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app) and note the `client_id`, `client_secret`, and `tenant_id`. Then ensure the Fabric admin has enabled service principal API access (see **Fabric Admin Settings** above) and add the service principal as a member of the target workspaces.
89
+
Register an application in [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app) and note the `client_id`, `client_secret`, and `tenant_id`. Then:
90
+
91
+
1. Ensure the Fabric admin has enabled service principal API access (see **Fabric Admin Settings** above)
92
+
2. Create a security group in Entra ID and add the service principal as a member
93
+
3. Add the security group as **Contributor** in each target workspace (Contributor role grants access to pipeline definitions and item connections for lineage)
92
94
93
95
```yaml
94
96
credential:
@@ -102,7 +104,7 @@ All three fields are required when using this method.
Use this when running DataHub ingestion on an Azure VM, AKS, App Service, or other Azure compute that supports [managed identities](https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/overview). The managed identity must be added as a workspace member in Fabric. A Fabric admin must also enable the tenant settings described in **Fabric Admin Settings** above — these settings govern API access for both service principals and managed identities, despite the setting name referencing only service principals.
107
+
Use this when running DataHub ingestion on an Azure VM, AKS, App Service, or other Azure compute that supports [managed identities](https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/overview). The managed identity must be added as a workspace Contributor in Fabric. A Fabric admin must also enable the tenant settings described in **Fabric Admin Settings** above — these settings govern API access for both service principals and managed identities, despite the setting name referencing only service principals.
106
108
107
109
```yaml
108
110
# System-assigned managed identity (no additional config needed)
##### Azure CLI (for local development and testing)
122
124
123
-
Uses the credentials from your local `az login` session. Run `az login` before starting ingestion. The signed-in user must have workspace access in Fabric.
125
+
Uses the credentials from your local `az login` session. The signed-in user's existing Fabric permissions apply directly — no additional setup needed beyond workspace access.
124
126
125
127
```yaml
126
128
credential:
127
129
authentication_method: cli
128
130
```
129
131
132
+
Run `az login` before starting ingestion. For remote servers without a browser, use `az login`.
Uses Azure's [DefaultAzureCredential](https://learn.microsoft.com/en-us/python/api/azure-identity/azure.identity.defaultazurecredential) chain, which tries multiple credential sources in order: environment variables, workload identity, managed identity, shared token cache, Azure CLI, Azure PowerShell, Azure Developer CLI, and more.
@@ -149,6 +153,8 @@ credential:
149
153
#### Setup
150
154
151
155
1. Choose an authentication method from above and configure the `credential` block.
152
-
2. If using service principal or managed identity, ensure the Fabric admin has enabled the appropriate developer settings for service principal API access (see **Fabric Admin Settings** above).
153
-
3. Add the identity as a member of the target workspaces with Viewer role or above.
156
+
2. If using service principal or managed identity:
157
+
- Ensure the Fabric admin has enabled the appropriate developer settings (see **Fabric Admin Settings**)
158
+
- Create a security group, add your identity, and grant **Contributor** on target workspaces
159
+
3. If using Azure CLI, run `az login` (or `az login --use-device-code` on remote servers).
154
160
4. Configure the ingestion recipe with optional workspace and pipeline filters.
0 commit comments