Как создать токен доступа WOPI из WAC Office Server

Один из наших клиентов хочет, чтобы мы открывали документы Word с помощью Office Server. Я уже установил WAC-сервер на месте, чтобы открыть офисные документы в браузере.

этот документ будет открыт в iframe в нашей системе. Я хотел бы сгенерировать токен доступа с WAC-сервера, используя WOPI API. Я провел некоторое расследование и обнаружил, что Sharepoint делает это. Я могу использовать HttpClient в C# для извлечения этого значения. Но выглядит грязно! и я уверен, что есть лучший способ создать этот токен доступа? Я совершенно новый с SharePoint и WAC сервером. Пожалуйста помоги.

Токен доступа, сгенерированный из SharePoint

есть документация по WOPI API. Но я все еще не понимаю, как построить этот запрос? проверьте это изображение, которое взято из документации.

Заранее спасибо:)

1 ответ

Решение

You don't necessarily need to implement the /wopibootstrapper endpoint nor the GetNewAccessToken метод. They're specific to the Office Online (365) integration program.

Your job is just to generate an access_token that would be included in a POST request of the WOPI frame in your application (similarly to the picture in your question).

This token will be used by the WOPI client (WAC/OWA/OOS Server). The WOPI client doesn't need to be able to decipher the token or understand it in any other way. It just takes it and appends it to every request being made against the WOPI host. WOPI host, on the other hand, needs to be able to validate the token. The token say which resources the given user has access to. Make sure you understand the concept of the access_token Что ж. Especially:

Access tokens must be scoped to a single user and resource combination.

How you generate the token is entirely up to you. Typically, you'd ask your user/role store (this can be Windows ACL store, your database or something else) whether the given user has access to a certain resource and store this information (claims) within the token and encrypt it (so that it can't be faked). Another option is to include just the information about the user and let WOPI host figure out the permission during token validation (talk to the user/role store)...this is also possible because, as I mentioned earlier, the WOPI client doesn't care what's in the token. You can even set the access_token=xyz and never check for it in your WOPI host if you don't care about authorization at all.

The process of generating and validating tokens is very well demonstrated in OfficeDev/PnP-WOPI. Увидеть HomeController а также WopiSecurity классы.

You can see some other examples in my other answer here.

Другие вопросы по тегам