Ошибка аутентификации API кластеров Azure AKS

Мне нужно программно получить пользовательские кластеры AKS, но

у меня возникла проблема при выполнении этого запроса https://management.azure.com/subscriptions/75a3ba1b-6e0b-4d2a-8c8c-0f1a967e9711/providers/Microsoft.ContainerService/managedClusters?api-version=2018-03-31

Заголовки: авторизация: предъявитель {JWT}

я получил

{
    "error": {
        "code": "AuthenticationFailed",
        "message": "Authentication failed."
    }
}

Как я получаю этот токен JWT

Я использую этот поток https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-scenarios для реализации

  1. Я использую его https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-openid-connect-code для получения кода
  2. После того, как я попытаюсь получить токен доступа https://login.microsoftonline.com/%7Btenant-id%7D/oauth2/token enjtenant- id‹/ oauth2/token Заголовки:

тип_правки: код авторизации
client_id: {myapp-id}
код: {Получить с шага 1}
client_secret: {myapp-key}
ресурс: https://graph.microsoft.com/

И в результате у меня есть токен JWT с полезной нагрузкой

{
  "aud": "https://graph.microsoft.com",
  "iss": "https://sts.windows.net/ee3f07b0-0b4f-4929-acb0-643894a174fa/",
  "iat": 1533214682,
  "nbf": 1533214682,
  "exp": 1533218582,
  "acct": 0,
  "acr": "1",
  "amr": [
    "pwd"
  ],
  "app_displayname": "SinglePageApp-jQuery-DotNet",
  "appidacr": "1",
  "ipaddr": "193.243.159.58",
  "name": "Pasha Kostohrys",
  "platf": "3",
  "puid": "1003BFFDAC20BE5D",
  "scp": "Directory.AccessAsUser.All Directory.Read.All Directory.ReadWrite.All Group.Read.All Group.ReadWrite.All Member.Read.Hidden User.Read User.Read.All User.ReadBasic.All",
  "ver": "1.0",
  "wids": [
    "62e90394-69f5-4237-9190-012177145e10"
  ]
}

1 ответ

Решение

Аудитория полученного вами токена на предъявителя https://graph.microsoft.com/, но аудитория запрашиваемого вами API https://management.core.windows.net/,

Я думаю, что вы должны использовать resource : https://management.core.windows.net/ чтобы получить токен на предъявителя, он будет работать.

Другие вопросы по тегам