доступ к sharepoint REST apis с использованием msal throws 401 - PullRequest
0 голосов
/ 30 октября 2018

Если я зайду на https://developer.microsoft.com/en-us/graph/graph-explorer# и использую URL, например:

https://graph.microsoft.com/beta/sites/4development106.sharepoint.com:/sites/DBSchenker:/lists/OEC_Docs/items Я вижу, что запрос успешно выполнен.

Теперь, если я использую угловое приложение из github https://github.com/AzureAD/microsoft-authentication-library-for-js

и код типа

 private sharePointHost: string = "https://4development106.sharepoint.com/sites/DBSchenker/_api/web/lists/getByTitle('OEC_Docs')/items"

  getDocuments(token){
    const httpOptions = {
      headers: new HttpHeaders({
          'Accept':  'application/json;odata=verbose'
          ,'Authorization' : "Bearer " + token
        })
      };

    this.http.get(this.sharePointHost, httpOptions).subscribe(
      (resp) => console.log("respon is::: " + JSON.stringify(resp)),
      (err) => console.log("error:::" + JSON.stringify(err))
    )
  }

Бросает:

error:::`{"headers":{"normalizedNames":{},"lazyUpdate":null},"status":401,"statusText":"OK","url":"https://4development106.sharepoint.com/sites/DBSchenker/_api/web/lists/getByTitle('OEC_Docs')/items","ok":false,"name":"HttpErrorResponse","message":"Http failure response for https://4development106.sharepoint.com/sites/DBSchenker/_api/web/lists/getByTitle('OEC_Docs')/items: 401 OK","error":{"error_description":"Invalid JWT token. No certificate thumbprint specified in token header."}}`

смена хоста на (который работает в графе api explorer)

private sharePointHost: string = "https://graph.microsoft.com/beta/sites/4development106.sharepoint.com:/sites/DBSchenker:/lists/OEC_Docs/items"

бросает

error:::{"headers":{"normalizedNames":{},"lazyUpdate":null},"status":401,"statusText":"Unauthorized","url":"https://graph.microsoft.com/beta/sites/4development106.sharepoint.com:/sites/DBSchenker:/lists/OEC_Docs/items","ok":false,"name":"HttpErrorResponse","message":"Http failure response for https://graph.microsoft.com/beta/sites/4development106.sharepoint.com:/sites/DBSchenker:/lists/OEC_Docs/items: 401 Unauthorized","error":{"error":{"code":"InvalidAuthenticationToken","message":"Access token validation failure.","innerError":{"request-id":"f5a77afc-0d92-49a0-92c4-e727e056d0a9","date":"2018-10-30T01:42:02"}}}}

не уверен, что я делаю неправильно

1 Ответ

0 голосов
/ 19 февраля 2019

У меня была такая же проблема. Единственное решение, которое я смог найти, было использовать ADAL вместо MSAL в настоящее время . Я не совсем уверен, почему, но SharePoint Online, похоже, работает с ADAL только так, как вы его используете.

Первоначально я думал, что это может быть из-за "общей" конечной точки в MSAL, но переключение на "Учетные записи только в этом организационном каталоге (...)" также не решило проблему.

Возможно, вы также захотите взглянуть на https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/521 для аналогичной проблемы (хотя это не решило и мою проблему).

...