Ошибка проверки токена для API графа AD после использования токена, полученного из AzureRmContext в Powershell - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь выполнить API-вызовы Microsoft Graph API, используя Oauth2 для входа в систему.

Я пытался использовать командлет AzureRm для получения токена для своей учетной записи, поэтому я могу выполнять вызовы API, носообщение "Ошибка проверки токена доступа. Недопустимая аудитория."появился в ответе JSON.

Login-AzureRmAccount

$currentAzureContext = Get-AzureRmContext
$tenantId = $currentAzureContext.Tenant.Id
$accountId = $currentAzureContext.Account.Id

$tokenCache = $currentAzureContext.TokenCache
$cachedTokens = $tokenCache.ReadItems() `
        | where { $_.TenantId -eq $tenantId }

$accessToken = $cachedTokens.AccessToken
Invoke-RestMethod -Method Get `
                 -Uri ("https://graph.microsoft.com/v1.0/me") `
                -Headers @{ "Authorization" = "Bearer " + $accessToken }

Ниже приведен ответ JSON:

Invoke-RestMethod : {
  "error": {
    "code": "InvalidAuthenticationToken",
    "message": "Access token validation failure. Invalid audience.",
    "innerError": {
      "request-id": "8429e520-401b-4382-adad-4f55bccbe752",
      "date": "2019-11-04T16:53:27"
    }
  }
}

1 Ответ

1 голос
/ 04 ноября 2019

Посмотрите на токен в https://jwt.ms и посмотрите, что такое утверждение аудита. Я думаю, что токен, который вы получаете через AzureRm, является токеном доступа к API управления Azure. Значение для MS Graph - 'https://graph.microsoft.com'.. Вы можете использовать модуль AzureAD PS для получения токенов Graph. Также обратите внимание, что AAD - это не то же самое, что MS Graph.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...