microsoft / microsoft/durabletask-mssql

Always encrypted support

Open
#165 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Azure Functions enhancement help wanted
Dominant language
C#
Stars
105
Forks
36
PR merge metrics
No merged PRs in 30d

Description

Hello

I am wondering if it is already possible to enable Always Encrypted / Column Encryption on the TaskHub database?
And if not, if you are considering it?

I have tried to make it work but have so far been unsuccessful and guess it doesn't either.

So what do I want to accomplish and why?
I want to turn on SQL Server/Database Column Encryption on the Payloads.Text column of the TaskHub.
This because the Durable Function we are developing will handle highly sensitive data as payload and we want to protect it with application level encryption, thus ensuring that not even the database owners/admins can read the payload data (as they will not also have access to the master key in the Key Vault - i.e. technically enforcing strong segregation of duties).

I tried assigning the Function App of the Durable Function both System and User assigned managed identities (that were enabled as Users in the Database as well) with the right role assignment to the Key Vault key, and with the connection string parts Authentication=Active Directory Managed Identity; Column Encryption Setting=enabled

I also added the Nuget Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider to the Durable Functions project before deployment.

To no avail

Looking forward to hear you recommendations and/or if this will make it to the backlog for consideration
Thank you!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing how the Durable Functions project connects to the TaskHub database and persists the Payloads.Text column. Check the SQL client connection settings, managed identity configuration, and Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider setup described in the issue. Done means establishing whether Always Encrypted is supported and documenting or implementing the required configuration and key-access behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, sql
Domain
databases, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.