Project CSOM онлайн без использования SharePointOnlineCredentials - PullRequest
0 голосов
/ 17 января 2019

У нас есть консольное приложение, работающее каждую ночь, которое обновляет некоторые планы проектов с помощью CSOM.При этом используется SharePointOnlineCredentials для аутентификации.

Но ИТ-отделы хотят изменить флаг LegacyAuthProtocolsEnabled арендатора на false.Это приводит к тому, что SharePointOnlineCredentials больше нельзя использовать, поскольку вы можете прочитать здесь .

. В приведенной выше ссылке был предложен подход с использованием ClientId и ClientSecret.Я проверял это с помощью функции PnP Core AutheticationManager GetAppOnlyAuthenticatedContext.Это работает для объекта ClientContext для SharePoint Online, но не работает после изменения этой функции для возврата объекта ProjectContext.ProjectServerError «GeneralNotLicensed» генерируется, потому что у SharePoint Director нет лицензии Project Online (см. здесь ).

Моя третья попытка была использовать найденный класс Office365ClaimsHelper здесь .Это связывается с https://login.microsoftonline.com/extSTS.srf для токена SAML, предоставляя имя пользователя и пароль.Теперь этот подход работает для демонстрационной среды, но не для производственной среды.Я подозреваю, потому что это имеет многофакторную аутентификацию.

Короче говоря: есть ли у кого-нибудь идея о том, как получить объект ProjectContext без использования SharePointOnlineCredentials и без отображения всплывающего окна для входа пользователя в систему?многофакторная среда аутентификации?

1 Ответ

0 голосов
/ 30 января 2019

удалось найти рабочее решение благодаря следующему скрипту PowerShell: https://blogs.technet.microsoft.com/sharepointdevelopersupport/2018/02/07/sharepoint-online-active-authentication/

Переведено это в код C # и звонки в Project Online CSOM работают!

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