Получите данные SharePoint Office 365, используя идентификатор клиента
Я получаю доступ к данным онлайн-списка SharePoint, используя следующий код, но получаю следующую ошибку.
The remote server returned an error: (403) Forbidden.
Приложение веб-форм выполняется в Azure и использует проверку подлинности Azure. Я хотел бы использовать те же учетные данные для аутентификации
string siteUrl = "[url]";
string aadAppId = "[appid]";
string clientSecret = "[redacted]";
OfficeDevPnP.Core.AuthenticationManager authManager = new OfficeDevPnP.Core.AuthenticationManager();
ClientContext context = authManager.GetAzureADNativeApplicationAuthenticatedContext(siteUrl, aadAppId, appurl, null, AzureEnvironment.Production);
if (context != null)
{
Web web = context.Web;
context.Load(web);
context.ExecuteQuery();
}
Я не хочу получать доступ к SharePoint с использованием учетных данных пользователя.
Я включил аутентификацию AAD Azure в веб-приложении. Веб-приложение проходит проверку подлинности с использованием учетных данных Azure.
На настройке CORS я также установил URL домена в "https://domainname.sharepoint.com";
В разделе управления разрешениями приложения AAD я дал приложению разрешение на чтение и запись списка sharepoint и веб-данных.
1 ответ
Ваш пример пытается получить токен как собственное клиентское приложение, которое не может хранить секрет и не может аутентифицироваться само по себе. (Вот почему вы заметите, что вы никогда не используете clientSecret
.)
Если вы хотите использовать OfficePnP, вы можете попробовать один из AuthenticationManager.GetAzureADAppOnlyAuthenticatedContext
методы аутентификации в контексте приложения. Обратите внимание, что все они требуют сертификат для проверки подлинности, а не секрет.