使用PowerShell连接Azure数据目录REST API

时间:2018-06-14 11:22:26

标签: powershell powershell-v2.0 powershell-v3.0 powershell-v4.0 azure-powershell

我想使用power shell脚本连接到Azure数据目录RestAPI,下面是我的脚本无法运行。

使用ADAL获取访问令牌

$authContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext ("{0}" -f $login)

$authenticationResult = $authContext.AcquireToken($ResourceId, $ClientId, $redirectUri, $PromptBehavior);

($token = $authenticationResult.AccessToken) | Out-File $accessToken

$authContext.AcquireToken($ResourceId, $ClientId, $redirectUri, $PromptBehavior)


$headers = @{ 

    "Authorization" = ("Bearer {0}" -f $token);

}

$url = "https://api.azuredatacatalog.com/catalogs/DefaultCatalog/search/search?searchTerms=name:=Orders&count=10&api-version=2016-03-30"

$response = Invoke-RestMethod -Method GET -Uri $url -Headers $headers 

我收到以下错误消息

  

Invoke-RestMethod:   401 - 未授权:由于凭据无效,访问被拒绝。   服务器错误

     

401 - 未经授权:由于凭据无效,访问被拒绝。     您无权使用您提供的凭据查看此目录或页面。

     

在行:1字符:13   + $ response = Invoke-RestMethod -Method GET -Uri $ url -Headers $ headers   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~       + CategoryInfo:InvalidOperation:(System.Net.HttpWebRequest:HttpWebRequest)[Invoke-RestMethod],WebException       + FullyQualifiedErrorId:WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

请帮我解决问题

1 个答案:

答案 0 :(得分:0)

您可能需要通过Azure AD授予应用程序对Azure数据目录的访问权限。

enter image description here

请注意,这可能需要管理员批准才能完成。