Проблемы с реализацией WOPI Host - PullRequest
2 голосов
/ 29 февраля 2020

Мы пытаемся реализовать Wopi Host, следуя протоколу для интеграции с OWA, как описано в здесь , и у нас возникают некоторые проблемы с некоторыми моментами:

  • Мы реализовали простой хост, который способен только просматривать файлы, то есть он реализует представления CheckFileInfo и GetFile. В тестовой среде поток работает, и мы можем просматривать файлы в OWA. Дело в том, что при выполнении Wopi Validator (веб-версия и версия docker) у нас возникает ошибка в операции GetFile, поскольку средство проверки пытается получить доступ к конечной точке с двумя // в конце:

    host/wopi/files/file_id//contents

    Это известная проблема, которая возникает только в валидаторе? Почему два «/» добавляются в конец WopiSr c? Как мы можем решить эту проблему?

  • Мы прочитали здесь несколько сообщений, в которых говорится, что редактирование необходимо для официальной проверки нашей интеграции OWA с Microsoft. Это правда? Разве представления CheckFileInfo и GetFile не являются единственными необходимыми для реализации простого хоста Wopi, способного только просматривать файлы? Мы просто передаем необходимую информацию в ответ на операцию CheckFileInfo. Мы не используем FileUrl или любой другой параметр, кроме обязательных. Насколько я могу видеть, эти два вида являются единственными, необходимыми для просмотра файлов с OWA, например: здесь

  • Кроме того, у нас есть проблема в первой части потока, когда браузер отправляет запрос в OWA и передает токен и WopiSr c. Нам удалось только заставить поток работать, передав токен в строке запроса через метод GET. Если мы поместим его в JSON с методом POST, OWA просто проигнорирует его и вообще не будет пытаться вызвать Wopi Host через WopiSr c. Может ли кто-нибудь немного просветить нас в этом вопросе, чтобы выяснить, что может происходить?

  • Кроме того, мы застряли в некоторой точке проверки токена. Документы предельно ясны, когда говорят, что токен генерируется хостом и что он должен быть уникальным для одной комбинации пользователь / файл. Мы сделали это. Проблема в том, как нам узнать, что пользователь пытается получить доступ к ресурсу, когда запрос приходит из OWA? Например, когда OWA вызывает хост в представлениях CheckFileInfo и GetFile, он передает нам токен. Но как мы можем знать информацию о пользователе? Поскольку токен предназначен для одного файла (который мы имеем в адресе конечной точки, к которому осуществляется доступ) и для одного пользователя, как мы можем проверить пользователя на этом этапе? Мы не нашли никакого заголовка или значения заполнителя, которое можно было бы использовать для извлечения этой информации при получении запроса от OWA, и мы здесь немного растеряны. Мы подумали о том, чтобы добавить информацию о пользователе в токен, а затем извлечь ее обратно, но, как я понял, я лишь гарантирую, что токен не был изменен между запросами. У кого-нибудь есть идеи?

1 Ответ

2 голосов
/ 09 марта 2020

Относительно проверки с помощью Microsfot требуется функциональность редактирования.

Для ситуации POST отправка должна быть выполнена в виде "формы", а не JSON.

Проверка токена полностью открытый, вы должны выбрать способ, который, по вашему мнению, будет лучшим подходом. JWT - хорошая альтернатива в этом случае.

...