Home

Awesome

Sitecore-Forms-Cloud-Upload

Use Azure Storage Queue and Azure Storage Blob to store Sitecore 9.3+ Forms uploads Encrypted, with a key from Azure Key Fault. See http://www.stockpick.nl/english/sitecore-93-forms-process-sensitive-files/

What you can do is process the message on the queue with for example an Azure function, get the related uploaded files, process the message and files. And delete the sensitive files and remove the message from the queue. The message on the queue is now not encrypted. If the information is very sensitive, you can also encrypt that.

Quick Azure Setup (for local development)

Create an Azure storage

For Storing (temporary) the uploaded files and tempory storing the form values

No necessary to create queue or blob storage the code will create one on the first use.

Create an Application

You use this to authenticate instead of a user.

SEE https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal for more info about creating an Service principal,

##Create a Key vault For storing the secret decryption key

Sitecore setup, Sitecore 9.3+

It also contains a Decrypt controller, but that is more for the purpose to demo how to encrypt a file, Note in this example all files are encrypted with the same key. So still possible to easy get all uploaded files if you have the key. I expect you to delete the uploaded files after you have processed them, so that they are only there for a while. Example url https://sc93sc.dev.local/api/decryptblobfile/File/963ac1b1-4744-4c42-9a00-76771d8f82c2

note: Sitecore Forms automatically stores uploaded files when a visitor navigates between form pages. So the uploads are still�unencrypted in the�ExperienceForms database, you need to�create also a custom FileStorageProvider class currently not included in this project.

So actually this first attempt is not optimal, to be continued