У меня есть приложение (в чистой среде Windows), которое должно хранить конфиденциальные данные, чтобы другие рабочие станции с такими же приложениями могли получить доступ к этим данным.
На данный момент это делается с помощью центрального сервера с общим сетевым ресурсом SMB и зашифрованными файлами.
Все пользователи (windows), которые используют наше приложение, должны иметь доступ на чтение / запись к одной центральной общей папке, и таким образом данные хранятся и обмениваются.
Эта конфигурация имеет один большой недостаток: не только приложение, но и все пользователи нашего приложения имеют полный доступ к этой общей папке.
Хорошо, они не могут читать конфиденциальные данные, так как они зашифрованы, но - учитывая некоторую преступную энергию или глупость - они могут просто открыть проводник Windows, перейти к этой общей папке и удалить там файлы.
Я пытался, но не смог открыть общий ресурс SMB только для своего приложения - как только мое приложение проходит проверку подлинности, у текущего пользователя Windows есть доступ.
(Я попытался использовать WNetAddConnection2, но как только произошла аутентификация, соединение открывается и для всех других программ. И если я не сопоставлю папку SMB с буквой диска, я даже не смогу снова отключить диск )
Существуют ли возможности для проверки подлинности только процесса или потока, а не текущего пользователя для доступа к общему сетевому ресурсу?
Или есть эффективные альтернативы акциям малого и среднего бизнеса? Одна запись данных имеет размер от 100 до 900 МБ. Поэтому мне нужна поддержка для чтения / записи произвольного доступа к файлам.
Использование SFTP и перекачка всех данных на рабочую станцию при открытии и отправка всего обратно при закрытии не вариант. Это может привести к нагрузке на сеть, и в случае сбоя приложения все изменения будут потеряны, а при использовании «обычного» доступа будут потеряны только данные в сетевом кэше.
Есть рекомендации?