Получить токен доступа SharePoint из уже созданного токена доступа для ресурса Microsoft Graph (https://graph.microsoft.com)

Я пытаюсь получить токен доступа для семейства веб-сайтов SharePoint, используя уже сгенерированный токен доступа для графического ресурса Microsoft, и передать этот токен доступа для получения контекста семейства сайтов с помощью Pnp AuthManger.

Кто-нибудь может подсказать мне, как это можно сделать? это осуществимо или нет?

Мне известно о том, что для разных групп ресурсов можно сделать два разных запроса аутентификации.

Ниже приведена статья, но она содержит класс AuthenticationContext в Microsoft.IdentityModel.Clients.ActiveDirectory обновлен и больше не имеет метода AuthenticationContext.AcquireTokenByRefreshTokenAsync.

http://blogs.perficient.com/microsoft/2016/08/getting-access-tokens-for-both-sharepoint-and-microsoft-graph/

Примечание: я использую библиотеки.net для выше.

1 ответ

ADAL поддерживает получение токенов для нескольких ресурсов. Вы по-прежнему можете использовать библиотеку ADAL для выполнения ваших требований.

Да, в ADAL 3 метод AcquireTokenByRefreshToken не существует. Но токен обновления все еще присутствует в кэше токенов, вам на самом деле не нужно использовать токен обновления из собственного кода приложения. С ADAL 3, когда вы хотите получить токен доступа для другого ресурса, вы можете использовать AcquireTokenSilentAsync метод:

 string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
 AuthenticationContext authContext = new AuthenticationContext(Startup.Authority, new NaiveSessionCache(userObjectID));
 ClientCredential credential = new ClientCredential(clientId, appKey);
 result = await authContext.AcquireTokenSilentAsync(YourResource, credential, new UserIdentifier(userObjectID, UserIdentifierType.UniqueId));

При вызове этого метода он будет проверять кеш токена. Если это разностный ресурс, токен доступа не существует (или токен доступа истек), он будет использовать токен обновления (если он существует и не имеет срока действия), чтобы получить новый токен доступа для этого ресурса.

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