Azure Function SharePoint Dataverse Upload

Job ID: 40058209

Budget: $10 – $30 USD

I need a small Azure Function whose single responsibility is to take an incoming file stream, authenticate against Microsoft 365, and store that file both in SharePoint and in Dataverse. The caller will pass the file in the request body together with basic JSON metadata. The function must use Microsoft Entra ID (formerly Azure AD) and the Microsoft Graph / Dataverse Web API to create the items, so full authentication and authorization handling is required.

The function must be developed strictly in C#. I already run other serverless components in .NET 6, so C# is the required language for this implementation.

The exact content types may vary (PDFs, Office docs, etc.), so the code must remain content-agnostic. On the SharePoint side, I will provide the target site and document library; on the Dataverse side, I will supply the table schema. All secrets and tenant-specific values must be stored in configuration (app settings or Key Vault) so the function can be promoted across environments without recompilation.

Deliverables:
• Azure Function source code in C# with a clear README explaining local debugging, Azure deployment, and app-settings structure
• Implementation of Entra ID token acquisition and silent renewal using either a managed identity or confidential-client flow (justify the choice in the README)
• Logic to upload the file to the specified SharePoint document library and create a corresponding Dataverse row storing the file or a link, plus any metadata from the request body
• Postman (or REST Client) collection demonstrating a successful call including bearer-token acquisition

The job is considered complete when I can deploy the function to my test subscription, send a sample file to it, and see the file appear in both SharePoint and Dataverse without any manual permission adjustments.