AcquireTokenForClient не возвращает токен refre sh? - PullRequest
1 голос
/ 17 июня 2020

Мы не получаем refresh_token при запросе токена, несмотря на то, что в документации говорится, что всегда, когда вы запрашиваете токен, вы получите токен refre sh. Возможно, вы случайно что-то упустили / неправильно поняли?

Это фрагмент кода, который мы используем:

var app = ConfidentialClientApplicationBuilder.Create("...")
  .WithAuthority(AzureCloudInstance.AzurePublic, "...")
  .WithClientSecret(CLIENTSECRET)
  .Build();

  AuthenticationResult result = await app.AcquireTokenForClient(ewsScopes)
    .ExecuteAsync();

А вот ссылка на документацию, на которой мы основываем свои ожидания: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes#refresh -tokens

Refre sh tokens

Когда клиент получает токен доступа для доступа к защищенному ресурсу, клиент также получает токен refre sh.

1 Ответ

1 голос
/ 17 июня 2020

Вы используете поток учетных данных клиента здесь, в своем коде, чтобы получить токен.

См. Здесь для документации - IConfidentialClientApplication.AcquireTokenForClient (IEnumerable) Method

  AuthenticationResult result = await app.AcquireTokenForClient(ewsScopes)
    .ExecuteAsync();

Подробнее о потоке Client Credentials читайте здесь, и, в частности, как выглядит успешный ответ в этом случае, который, как ожидается, будет иметь только access_token и не refresh_token.

{
  "token_type": "Bearer",
  "expires_in": 3599,
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNBVGZNNXBP..."
}

Другой поток, такой как поток кода авторизации (обычно используется веб-приложениями), возвращается access_token, а также refresh_token.

Вы можете узнать больше об этом потоке и ответе в этом случае здесь - Поток кода авторизации

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "token_type": "Bearer",
    "expires_in": 3599,
    "scope": "https%3A%2F%2Fgraph.microsoft.com%2Fmail.read",
    "refresh_token": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4...",
    "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIyZDRkMTFhMi1mODE0LTQ2YTctOD...",
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...