У нас есть настройка Azure Passthrough, т. Е. Проверка подлинности Azure выполняется в локальном AD.
Здесь у нас есть локальное приложение MVC, размещенное в IIS, которое должно использовать службы приложений, размещенные в Azure.Для этого мы зарегистрировали приложение в Azure Ad как нативное и сопоставили разрешения для служб.
В размещенном локальном приложении используется встроенная проверка подлинности Windows.мы можем получить токен доступа, используя приведенный ниже код из режима отладки в Visual Studio, т.е. работающего в IIS Express.
var clientId = "XXXX-XXXX-XXXX-XXXX-XXXX";
string authority = "https://login.microsoftonline.com/XXXX-XXXX-XXXX-XXXX-XXXX/oauth2/authorize";
string resource = "https://ourdomain.sharepoint.com"; ///put id or url of resource you're accessing
AuthenticationContext authenticationContext = new AuthenticationContext(authority, false);
UserCredential uc = new UserCredential(); // By passing empty means windows Authentication
AuthenticationResult token = null;
return authenticationContext.AcquireTokenAsync(resource, clientId, uc).Result;
Но после развертывания в IIS и запуска пула приложений с учетной записью службы.мы получаем токен доступа для учетной записи службы, вместо этого нам нужно получить токен доступа на основе аутентификации пользователя.