У меня есть токен обновления, выпущенный приложением A. Этот токен обновления хранится в хранилище ключей Azure, к которому приложение B имеет доступ.Приложение B теперь берет этот токен рефреха и обменивает его на токен доступа.
К сожалению, этот обмен завершается неудачно с сообщением
"error": "invalid_client",
"error_description": "AADSTS7000215: Invalid client secret is provided."
Хотя секрет клиента верен.Я смог получить с него токен доступа к хранилищу ключей.
Это HTTP-запрос на обмен токенов обновления, полученный от Fiddler (я удалил все секреты и идентификаторы):
POST https://login.microsoftonline.com/{TenantId}/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.17763.134
Host: login.microsoftonline.com
Content-Length: 1221
Connection: Keep-Alive
grant_type=refresh_token
&client_id={ClientId}
&client_secret={ClientSecret}
&resource=https%3A%2F%2Fvault.azure.net
&redirect_uri=https%3A%2F%2Flocalhost%2F
&refresh_token={RefreshToken}
Что здесь происходит?
PS: я знаю, что это дикое хранение токена обновления в Key Vault, но это рекомендуемый Microsoft способ доступа к CSP Partner API.