Я пытаюсь пройти аутентификацию по стандартному ASP. NET API веб-приложения, используя Azure аутентификацию AD.
Я могу получить токен из приложения Azure с помощью clientId и секрет, но когда я пытаюсь создать запрос GET в PowerShell, я получаю 401. unauthorized.
Разве токен для приложения, созданного с помощью веб-приложения, не должен предоставлять доступ к API?
Это сценарий, используемый для получения результата.
$postParams = @{
grant_type='client_credentials';
client_id=$clientId;
client_secret=$clientSecret;
resource='https://graph.microsoft.com';
}
$token = Invoke-WebRequest -Uri "https://login.microsoftonline.com/$($tenantId)/oauth2/token" -Method
Post -Body $postParams | select -expand content | convertfrom-json | select -expand access_token
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "bearer $token")
Invoke-WebRequest -Uri "https://localhost:32775/weatherforecast" -Method Get -Headers $headers -ContentType "application/json"
Что возвращает.
Invoke-WebRequest : The remote server returned an error: (401) Unauthorized.