ADAL.NET - почему AcquireTokenAsync необходим при аутентификации OnBehalfOf из API в API? - PullRequest
0 голосов
/ 07 февраля 2019

Канонический шаблон для получения токенов доступа с использованием ADAL.NET выглядит следующим образом:

try
{
 result = await authContext.AcquireTokenSilentAsync(graphResourceId, clientId);
}
catch (AdalException adalException) 
{
 if (adalException.ErrorCode == AdalError.FailedToAcquireTokenSilently || adalException.ErrorCode == AdalError.UserInteractionRequired)
 {
  result = await authContext.AcquireTokenAsync(graphResourceId,
                                               clientCred, 
                                               userAssertion);
 }
} 

Предположительно AcquireTokenSilentAsync пытается получить токен без взаимодействия с пользователем, в то время как AcquireTokenAsync запрашивает у пользователя разрешение.Однако ... Эта функция вызывается в веб-API, который пытается вызвать другой веб-API - поэтому нет способа вообще запросить у пользователя разрешение.Какой я использую?Нужно ли использовать оба?

1 Ответ

0 голосов
/ 08 февраля 2019

Как правило, вы просто используете второй (с userAssertion), поскольку это все, что у вас есть в WebAPI - входящий токен пользователя вызывающего вас клиента.Обратите внимание, что этот API НЕ будет запрашивать пользователя - это другая подпись с PlatfromParameters.Этот API будет обменивать входящий токен, адресованный этому API, на токен, адресованный API, который необходимо вызвать.

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