Получите данные SharePoint Office 365, используя идентификатор клиента - PullRequest
0 голосов
/ 11 декабря 2018

Я получаю доступ к данным онлайн-списка 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 Ответ

0 голосов
/ 11 декабря 2018

В вашем примере вы пытаетесь получить токен как собственное клиентское приложение, которое не может хранить секрет и не может аутентифицироваться само по себе.(Вот почему вы заметите, что никогда не используете clientSecret.)

Если вы хотите использовать OfficePnP, вы можете попробовать один из методов AuthenticationManager.GetAzureADAppOnlyAuthenticatedContext для аутентификации в приложении.только контекст.Обратите внимание, что все они требуют сертификата для аутентификации, а не секрета.

...