Jak ograniczyć opcje eksportu plików w Collabora Online CODE
Aby ograniczyć eksport plików w Collabora Online CODE, host WOPI powinien zwrócić DisableExport: truew CheckFileInfoodpowiedzi informacje o pliku i użytkowniku, których dotyczy problem. Dodaj HideExportOption: true, aby polecenie „Pobierz jako” zostało również usunięte z menu edytora. Pierwsza właściwość wyłącza funkcję eksportu Collabora w zapleczu; druga kontroluje widoczność. Ustawienie samej flagi widoczności nie jest środkiem kontroli dostępu.
CODE to edytor dokumentów. W standardowej integracji, osobny host WOPI, taki jak NextCloud, ownCloud lub aplikacja niestandardowa, przechowuje oryginalny plik i dostarcza Collabora metadane i uprawnienia do pliku. Dlatego uprawnienia eksportu są zazwyczaj konfigurowane w integracji hosta, a nie jako uniwersalny przełącznik w kontenerze Collabora coolwsd.xml.
Collabora Online prosi hosta WOPI o podanie informacji o pliku; odpowiedź hosta może zawierać ograniczenia eksportu dla danej sesji dokumentu.
Wybierz kontrolkę odpowiadającą akcji
Własność lub kontrola WOPI
Co to robi
Kiedy go używać
HideExportOption
Ukrywa opcję „Pobierz jako” w menu Plik.
Jako uzupełnienie egzekwowania zaplecza, aby użytkownicy nie widzieli niedostępnego polecenia.
DisableExport
Wyłącza funkcjonalność eksportu Collabora i implikuje HideExportOption.
Kiedy eksport z otwartego dokumentu powinien zostać zablokowany dla konkretnego pliku lub sesji.
UserCanNotWriteRelative
Informuje hosta, że użytkownik nie może zapisać kopii względnej ani „Zapisz jako” przez WOPI. Host musi odrzucić to żądanie.
Należy również uniemożliwić użycie opcji Zapisz jako lub utworzenie kopii za pomocą edytora.
DisablePrint
Wyłącza drukowanie w zapleczu Collabora i sugeruje, że opcja drukowania jest ukryta.
Tylko wtedy, gdy drukowanie jest również ograniczone; jest ono oddzielone od eksportu.
Użyj pierwszych dwóch pól do wąskiego zadania blokowania funkcji „Pobierz jako/eksportuj” w Collabora. Dodaj pozostałe opcje tylko wtedy, gdy Twoja polityka obejmuje również te oddzielne działania. Brak pozycji menu sam w sobie nie dowodzi, że pobieranie jest blokowane.
Zdecyduj, gdzie zastosować ograniczenie
Najpierw zidentyfikuj aplikację, która przechowuje plik i otwiera go w Collabora. W terminologii WOPI ta aplikacja to host. Collabora wywołuje punkt końcowy hosta CheckFileInfo, aby uzyskać informacje o pliku i jego możliwościach. Host wie, kto otworzył dokument i czy udostępnianie, konto lub polityka plików zezwala na pobieranie.
NextCloud lub inna zintegrowana platforma plików: użyj obsługiwanego przez nią ustawienia udostępniania lub bezpiecznego widoku, jeśli zainstalowana wersja oferuje opcję „Ukryj pobieranie” lub podobną. Integracja może przełożyć tę zasadę na uprawnienia WOPI. Sprawdź rzeczywistą odpowiedź hosta lub aktualną dokumentację platformy, zanim założysz, które ścieżki eksportu, drukowania, kopiowania lub bezpośredniego pobierania są blokowane.
Twój własny host WOPI: zaktualizuj kod, który buduje CheckFileInfoodpowiedź JSON. Oblicz ograniczenie na podstawie uprawnień uwierzytelnionego użytkownika i zasad udostępniania pliku.
Administrator kontenera CODE bez kontroli nad hostem: poproś administratora hosta lub programistę integracji o wymuszenie tego. Edycja samego kontenera CODE może ukryć niektóre opcjonalne formaty w interfejsie, ale nie zapewnia polityki uprawnień WOPI dla każdego pliku.
Obecna konfiguracja źródłowa Collabora opisuje extra_export_formatsopcje na poziomie interfejsu: wyłączenie tych opcjonalnych formatów powoduje jedynie ich wizualne ukrycie. Nie należy traktować tego ustawienia jako wymuszania eksportu po stronie serwera. Służy ono do prezentacji menu formatów, a nie jako substytut uprawnień hosta.
Ustaw uprawnienia eksportowe w niestandardowym hoście WOPI
1. Znajdź obsługę odpowiedzi CheckFileInfo
Znajdź trasę odpowiadającą na GET /wopi/files/{id}żądanie WOPI Collabora. Sprawdź, jak uwierzytelnia token dostępu i mapuje go na bieżącego użytkownika i plik. Nie ufaj fladze dostarczonej przez przeglądarkę, chyba że ?disableExport=truehost zweryfikuje ją zgodnie z własnymi regułami autoryzacji.
2. Wyprowadź decyzję z polityki gospodarza
Użyj danych kontroli dostępu po stronie serwera, aby zdecydować, czy dana osoba może wyeksportować ten plik. Właściciel pliku, wewnętrzny edytor i osoba przeglądająca linki publiczne mogą mieć różne uprawnienia. Jeśli ograniczenie dotyczy pojedynczego udziału, określ je na podstawie zasad tego udziału, a nie na podstawie globalnej zmiennej środowiskowej, która przypadkowo wpływa na każdego użytkownika.
Ilustrujący pseudokod: wyprowadź flagi WOPI z pliku i faktycznej polityki dostępu użytkownika, zamiast globalnie ustalać wybór jednego użytkownika.
3. Zwróć pola WOPI typu Boolean
Dodaj dwa pola logiczne do odpowiedzi JSON. To fragment do scalenia z istniejącą, kompletną CheckFileInfoodpowiedzią, a nie zamiennik wymaganych właściwości pliku i użytkownika:
Przykładowe pola uprawnień CheckFileInfo. Ustaw właściwość „Zapisz jako” tylko wtedy, gdy host odrzuca również żądania zapisu względnego.
Zachowaj standardowe pola wymagane i flagi możliwości, które Twoja integracja już udostępnia. Używaj wartości logicznych JSON truei false, a nie ciągów znaków, takich jak "true"lub "1". Jeśli eksport jest dozwolony, zwróć wartość false lub pomiń właściwości opcjonalne, zgodnie z zachowaniem obsługiwanym przez Twoją integrację i wersję Collabora.
4. Zablokuj opcję Zapisz jako osobno, jeśli wymaga tego polityka
Eksportowanie do formatu lokalnego i zapisywanie kopii z powrotem na hoście WOPI to różne operacje. Jeśli użytkownicy nie mogą utworzyć kopii „Zapisz jako” za pośrednictwem edytora, zwróć ją UserCanNotWriteRelative: truei spraw, aby host odrzucił odpowiednie żądanie zapisu względnego. Nie zakładaj, że DisableExportblokuje to każdą kopię lub ścieżkę zapisu. Analogicznie, uwzględniaj DisablePrint: truetylko wtedy, gdy drukowanie jest objęte polityką.
W makiecie menu pominięto opcję Pobierz jako; opcja Zapisz jako jest osobną akcją, którą host WOPI musi odrzucić, gdy zapisywanie względne jest niedozwolone.
Zastosuj odpowiednie ustawienie na zintegrowanej platformie
Gdy Nextcloud zarządza plikiem i udziałem, najmniej inwazyjną metodą jest własne, obsługiwane uprawnienie „ukryj pobieranie” lub „bezpieczny widok”, jeśli jest dostępne dla danego typu i wersji udziału. Aktualne źródło Richdocuments Nextcloud mapuje zasady „ukryj pobieranie” po stronie hosta na pola DisableExporti w Collabora HideExportOption, wraz z ograniczeniami drukowania i kopiowania. Dokładny zakres kontroli udostępnianych administratorowi może się różnić w zależności od wersji, edycji i typu udziału Nextcloud, dlatego należy potwierdzić działanie w zainstalowanym produkcie, zamiast kopiować niestandardową poprawkę WOPI do plików aplikacji.
Jeśli utrzymujesz innego hosta WOPI, zaimplementuj pola w jego odpowiedzi CheckFileInfo. Unikaj modyfikowania wygenerowanej konfiguracji kontenera Collabora w celu dodania nieudokumentowanych kluczy: odpowiedź WOPI to miejsce, w którym przekazywane są uprawnienia dla poszczególnych plików. Po zmianie kodu hosta wdróż go, korzystając ze standardowego procesu wydawania wersji danej aplikacji. Ponowne uruchomienie Collabora zazwyczaj nie jest krokiem, który zmienia decyzję o uprawnieniach wygenerowaną przez hosta; zamknij i ponownie otwórz dokument, aby uzyskać nową odpowiedź CheckFileInfo.
Sprawdź, czy ograniczenie działa
Otwórz dokument testowy, używając konta, które powinno być ograniczone.
Sprawdź odpowiedź CheckFileInfo hosta WOPI w logach aplikacji lub bezpiecznym śladzie programistycznym. Upewnij się, że oba pola to wartości logiczne JSON ustawione na wartość true dla tej sesji.
W Collabora sprawdź, czy opcja „Pobierz jako” jest niedostępna i przetestuj odpowiednią akcję eksportu. Nie używaj prawdziwego, poufnego pliku podczas wstępnej weryfikacji.
Jeśli opcja „Zapisz jako” również powinna być zablokowana, sprawdź, czy żądanie zapisu względnego po stronie hosta jest odrzucane. Element menu może pozostać widoczny, nawet jeśli host odrzuci operację.
Otwórz osobny dokument z uprawnieniami do eksportu. Upewnij się, że zmiana nie spowodowała przypadkowego wyłączenia eksportu dla wszystkich użytkowników lub plików.
Przetestuj osobno bezpośrednie pobieranie z platformy pamięci masowej. Flaga eksportu Collabora nie cofa automatycznie uprawnień użytkownika do pobrania oryginalnego pliku z NextCloud, OwnCloud, WebDAV ani innego punktu końcowego hosta.
Jeśli polecenie pozostaje widoczne, sprawdź, czy odpowiedź dotyczy pliku i użytkownika, którego testowałeś, otwórz ponownie dokument, aby utworzyć nową sesję i sprawdź, czy host faktycznie wysyła HideExportOption. Jeśli przycisk zniknie, ale eksportowanie nadal działa inną drogą, sprawdź, czy DisableExportjest to prawda i czy akcja jest rzeczywiście eksportem z Collabora, a nie pobieraniem oferowanym przez hosta magazynu lub obsługę postMessage specyficzną dla integracji.
Limity bezpieczeństwa i praktyczne zalecenia
Te ustawienia kontrolują obsługiwane przez Collabora operacje eksportu i zapisu; nie mogą one uniemożliwić użytkownikowi, który może wyświetlić dokument, robienia zrzutów ekranu, fotografowania ekranu ani ręcznego kopiowania informacji, które aplikacja mu udostępnia. Collabora musi również otrzymać zawartość dokumentu, aby ją wyrenderować. Aby zapewnić silniejszą kontrolę danych, połącz ograniczenia edytora z autoryzacją pobierania hosta pliku, zakresem tokena dostępu, zasadami udostępniania, rejestrowaniem audytu oraz wszelkimi zatwierdzonymi przez organizację znakami wodnymi lub mechanizmami zapobiegania utracie danych. Opisz wynik jako ograniczenie obsługiwanych ścieżek eksportu, a nie jako uniemożliwienie kopiowania widocznej zawartości.
W przypadku większości instalacji CODE należy użyć parametru DisableExporti HideExportOptionw odpowiedzi CheckFileInfo WOPI generowanej przez hosta, z zakresem dostosowanym do odpowiedniego użytkownika i dokumentu. Wymuś bezpośrednie pobieranie i zapisywanie jako na hoście oraz zweryfikuj sesje ograniczone i dozwolone po wdrożeniu.