Как я могу подключиться к документам Alfresco через пользовательское веб-приложение - PullRequest
0 голосов
/ 08 июля 2019

Наше веб-приложение на Java использует Alfresco в качестве DMS.Приложение использует один единственный пользователь системы для подключения к Alfresco.Приложение само управляет правами доступа с помощью некоторой бизнес-логики.

Теперь я хотел бы иметь возможность использовать URI MS Office для онлайн-редактирования документов Word, которые живут в Alfresco.Так, например, это URL, который выглядит как ms-word: ofe | u | https://ourwebapp.com/documents/mydocument.docx Однако, если мы откроем наши документы таким образом, пользователь получит возможность делать на Alfresco такие вещи, которые нам не нужныих делать.

Поскольку мы хотим обеспечить безопасность и сохранность наших документов, мы не хотим, чтобы пользователи могли получать документы Alfresco «напрямую», а через наше приложение.Открытие документов Alfresco напрямую означало бы, что каждый отдельный пользователь должен получить уникальное имя пользователя / пароль Alfresco, а у нас его нет, и мы этого не хотим, потому что у нас уже есть много-много документов, живущих в Alfresco.

Конечно, есть другие компании, сталкивающиеся с этой проблемой?Т.е. используя их DMS с одним единственным системным пользователем?

То, что я уже пробовал, это сделать конечную точку REST.Spring Filter гарантирует, что заголовок авторизации с именем пользователя / паролем будет добавлен, а запрос будет перенаправлен в Alfresco.Затем ответ от Alfresco передается обратно пользователю.Однако в результате получается документ, который в лучшем случае открывается только для чтения.Более того, кажется, не очень безопасно установить соединение с пользователем, используя учетные данные пользователя этой системы.Насколько я знаю, пользователь сможет делать вещи под открытым небом, которые он не должен делать.Как редактирование или даже просмотр других документов.Примерно так:

enter image description here

Очень мало документации о том, как именно работает протокол ms-word, возможно, вы можете указать мне правильное направление?Или предложить какие-нибудь обходные пути, которые я мог бы попробовать?

1 Ответ

3 голосов
/ 09 июля 2019

Чтобы это работало с использованием протокола sharepoint (SPP), вам необходимо переопределить весь сервер протокола перед вашим приложением, поскольку вы контролируете доступ. Я не знаю, что вы можете (повторно) использовать для этого бесплатную или даже доступную реализацию SPP.

Сервер протокола Alfresco, возможно, не подходит, поскольку вы не можете / не хотите управлять зеркальным доступом из своего приложения в alfresco. Если вы получите доступ к такой системе, как Alfresco или Sharepoint, используя файловый протокол, вы получите слишком много прав доступа, как вы уже описали. Следуя концепции пользователя приложения, вы можете быть заблокированы от концепций Alfresco для конечных пользователей, если не можете отразить логику доступа в alfresco.

Несколько лет назад мы внедрили динамического избирателя с низким уровнем доступа, чтобы повысить или понизить доступ внутри службы узлов Alfresco, чтобы предоставить определенные разрешения на основе типов и метаданных. Таким же образом кто-то может реализовать интерфейс к другой системе, чтобы делегировать проверки разрешений на основе внешних данных, но это резко замедлит работу всех систем.

У нас аналогичное требование, так как мы получаем доступ к документам и данным из нескольких корпоративных источников, включая Alfresco, из нашего собственного продукта бизнес-процесса, имеющего концепцию доступа на основе правил и процессов, основанную на случаях, процессах, в которые вовлечены документы, а не в папках или документах. статические ACL. Мы используем локальный сервис, установленный на клиенте, который работает в партнерстве с приложением браузера, для загрузки, открытия и сохранения документов после закрытия файла по локальному временному (извлеченному) пути. Наш локальный клиент не имеет представления от Alfresco и проходит проверку подлинности только в отношении наших служб с использованием веб-токенов JSON.

Так что мой ответ - скорее концепция, а не готовое решение в надежде быть полезным.

...