Результат getAccessTokenAsync API-интерфейса Office дает ответ InvalidAuthenticationToken от Graph - PullRequest
0 голосов
/ 30 августа 2018

Я уже некоторое время пытаюсь решить эту проблему, я работаю над надстройкой Office-js для Outlook и пытаюсь получить доступ к данным Microsoft Graph через мой надстройку.

Но мне не удалось аутентифицировать токен, который я получаю от getAccessTokenAsync. Если я пытаюсь использовать аутентификатор из Office-JS-Helpers, я могу получить доступ, но я бы предпочел использовать встроенную функцию надстройки для него.

код, который я пытаюсь использовать, таков:

Office.initialize = () => {
    var options = { forceAddAccount: true, forceConsent: true } as Office.AuthOptions;
    Office.context.auth.getAccessTokenAsync(options, getAccessTokenAsyncCallback);
}


function getAccessTokenAsyncCallback(accessTokenResponse) {
console.log(accessTokenResponse.value)   

client = MicrosoftGraph.Client.init({
    authProvider: (done) => {
        done(null, accessTokenResponse.value);
    },
    debugLogging: false
})
client.api("/me")
    .get((err, res, rawResponse) => {
        console.log(err)
        console.log("rawResponse")
        console.log(rawResponse)
    })
}

и мой WebApplicationInfo в моем манифесте:

<WebApplicationInfo>
    <Id>{AppUID}</Id>
    <Resource>api://localhost:3000/{AppUID}</Resource>
    <Scopes>
      <Scope>profile</Scope>
      <Scope>user.read</Scope>
    </Scopes>
  </WebApplicationInfo>
</VersionOverrides>

и права были установлены в моем приложении на портале регистрации приложений.

Насколько я вижу при проверке / декодировании JSON Web Token, который я получаю от getAccessTokenAsync, он должен быть действительным.

но всякий раз, когда я пытаюсь подключиться с помощью этого токена, я получаю следующий ответ:

{
   "statusCode": 401,
  "code": "InvalidAuthenticationToken",
  "message": "Access token validation failure.",
  "requestId": "4a0ce952-0e90-XXXXXXXXX-db20c6cca94e",
  "date": "2018-08-30T05:37:43.000Z",
  "body": {
    "code": "InvalidAuthenticationToken",
    "message": "Access token validation failure.",
    "innerError": {
      "request-id": "4a0ce952-0e90-XXXXXXXXX-db20c6cca94e",
      "date": "2018-08-30T07:37:43"
    }
  }
}

Я просто не могу понять, в чем здесь проблема, не прав ли я, что токен, возвращаемый из getAccessTokenAsync, мне нужен для этого?

о да, и я работаю в среде Office365 с Outlook 2016 версии 1807, сборка 10325.20118, нажмите для запуска

1 Ответ

0 голосов
/ 30 августа 2018

Токен, возвращаемый getAccessTokenAsync, называемый токеном начальной загрузки, НЕ обеспечивает доступ вашего дополнения к MS Graph напрямую. Вместо этого он предоставляет приложению Office Office, в данном случае Outlook, доступ к веб-приложению вашего надстройки . Затем веб-приложение вашей надстройки использует этот токен для получения токена доступа к Microsoft Graph. Это делается с помощью потока OAuth «от имени». См. Обширную документацию по этому узлу: SSO в надстройках Office и, для конкретных инструкций для Outlook, также см. Аутентификация пользователя в надстройке Outlook с помощью токена SSO .

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