Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
MohitMakhija199
Microsoft Employee
Microsoft Employee

Unable to get Token for deployment using powershell.

I am trying to deploy notebooks, lakehouses and powerbi reports using the fabric rest api : Items - Create Notebook - REST API (Notebook) | Microsoft Learn
I saw some samples in the github repository on how to get the token for fabric : fabric-samples/features-samples/fabric-apis/LongRunningOperation-Polling.ps1 at main · microsoft/fab...

but the token I get when using https://api.fabric.microsoft.com is user_impersonation token which is not able to perform get or even list calls.
below is my code


 

 

 

$global:baseUrl = "https://api.fabric.microsoft.com/v1"
$global:resourceUrl = "https://api.fabric.microsoft.com"
$global:fabricHeaders = @{}
$global:GetNotebooksUrl = "{0}/workspaces/{1}/notebooks"

function SetFabricHeaders() {
    # Login to Azure
    Connect-AzAccount -AuthScope  -Tenant '72f988bf-86f1-41af-91ab-2d7cd011db47' | Out-Null

    # Get authentication
    $fabricToken = (Get-AzAccessToken -ResourceUrl $global:resourceUrl).Token

    $global:fabricHeaders = @{
        'Content-Type' = "application/json"
        'Authorization' = "Bearer {0}" -f $fabricToken
    }
}

try {
    SetFabricHeaders
    $workspaceId = ""
    $get_notebooks_url = $global:GetNotebooksUrl -f $global:baseUrl, $workspaceId
    Write-Host $global:fabricHeaders
    Write-Host "Getting notebooks from workspace: $get_notebooks_url"
    $operationState = Invoke-RestMethod -Headers $global:fabricHeaders -Uri $get_notebooks_url -Method GET
    Write-Host "Notebooks : $($operationState)"
}
catch {
    $errorResponse = GetErrorResponse($_.Exception)
    Write-Host "Failed to Perform request. Error reponse: $errorResponse" -ForegroundColor Red
}

 

 

 


I want to get token which has read and write scopes over workspace. 

1 ACCEPTED SOLUTION
KevinChant
Super User
Super User

I took a slightly different stance on this, which might be able to help you out.

 

For one pipeline I commented out the connect-azaccount in the PowerShell script and connected to it outside of the script instead using a service principal account as below:

 

                  $SecureStringPwd = ConvertTo-SecureString $(servicePrincipalKey) -AsPlainText -Force
                  $pscredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $(servicePrincipalId), $SecureStringPwd
                  
                  Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $(tenantId)
 
I then ran the script with the commented out line afterwards.
 
Let me know if that helps.

View solution in original post

2 REPLIES 2
MohitMakhija199
Microsoft Employee
Microsoft Employee

Thanks @KevinChant for the answer, 

using service principal solution also works as you have shown, in my case also, there was a slight parsing error of the response, but the token works fine. 
Developers can use both ways to get the token and automate their deployments.

KevinChant
Super User
Super User

I took a slightly different stance on this, which might be able to help you out.

 

For one pipeline I commented out the connect-azaccount in the PowerShell script and connected to it outside of the script instead using a service principal account as below:

 

                  $SecureStringPwd = ConvertTo-SecureString $(servicePrincipalKey) -AsPlainText -Force
                  $pscredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $(servicePrincipalId), $SecureStringPwd
                  
                  Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $(tenantId)
 
I then ran the script with the commented out line afterwards.
 
Let me know if that helps.

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

Check out the August 2025 Power BI update to learn about new features.

August 2025 community update carousel

Fabric Community Update - August 2025

Find out what's new and trending in the Fabric community.