Hi Folks, I’m currently working on building a reusable connector in OutSystems Developer Cloud (ODC) to integrate with Azure Blob Storage using the available forge component Azure Blob Storage connector ODC.
From my understanding, the existing implementation primarily relies on SAS (Shared Access Signature) tokens for authentication.Question : - Is there any implementation of Azure Blob Storage integration in ODC without using SAS tokens? - Is it possible to create this connector using Azure connection string or access key? -- - If not directly supported, what would the recommended approach be to?
You can integrate Azure Blob Storage with ODC without SAS, but you’ll need to move away from the “SAS URL per operation” pattern used by the Forge connector and implement one of the supported Azure auth flows yourself.
Based on what you described, here are the options and what is realistic in ODC:
Azure Blob Storage supports three main approaches relevant here Security and Access Management > Blob Storage API Security:
The articles explicitly mention SAS and Azure AD as the preferred options for secure access, and refer to shared keys/connection strings as an underlying mechanism but not the recommended way to expose credentials to apps Security Considerations for Azure Blob Storage API.
From the documentation and typical patterns:
So: No, there is no standard ODC implementation that uses connection string/access key directly instead of SAS; at least not in the official examples and guidance.
Conceptually, yes, because Blob Storage’s REST API supports Shared Key authentication (HMAC with account key) and the connection string is just a way to store the account name + key. However, in practice:
This is technically possible but:
Microsoft’s own guidance is to avoid exposing account keys directly to client apps and favor SAS or AAD-auth flows.
So while you can do it, it’s generally not the recommended approach.
Given ODC constraints and Azure best practices, this is the usual pattern:
The article describes Azure AD as one of the main mechanisms for securing the Blob API, alongside SAS Blob Storage API Security.
This avoids SAS proliferation but still uses short-lived tokens; you just generate them internally via OAuth2 instead of copying SAS URLs around.
If you want to stick with SAS but not expose them to front-end logic:
This pattern is effectively what Microsoft recommends: keep secrets in a trusted backend, surface scoped, time-limited SAS to the app Architectural Considerations > When to Integrate Azure Services with OutSystems.
To answer your specific sub-questions:
“Is there any implementation without SAS?” Not in the official connectors/examples; they’re built around SAS (and conceptually, AAD for production scenarios).
“Is it possible via connection string or access key?” Theoretically yes, by implementing the Shared Key signature logic in OutSystems. But:
“If not directly supported, what is the recommended approach?” For ODC, the recommended patterns are:
If your goal is a reusable ODC connector that doesn’t depend on manually-provided SAS strings:
Implement an auth layer in the connector that:
Keep:
Expose simple server actions like:
UploadFile(File, Container, BlobPath)
DownloadFile(Container, BlobPath)
DeleteFile(Container, BlobPath)
internally handling token acquisition and calling the Azure Blob REST endpoints Technical Setup and API Integration for Blob Storage.
If you share more about where you want this connector to be called from (server actions only vs exposing URLs client-side), I can outline a more concrete flow (e.g., whether you should issue “user delegation SAS” for direct browser uploads vs keep everything server-to-server).
The Azure Blob Storage Connector available in ODC mainly supports SAS token-based authentication. Direct support for Azure connection string or access key authentication is generally not available in the standard Forge component. However, it is still possible to integrate Azure Blob Storage without SAS tokens by creating custom REST API calls using Shared Key authentication with the storage account name and access key.
The recommended approach is to use a middleware service such as Azure Functions or a custom .NET/Node.js API. In this setup, ODC communicates with the middleware, and the middleware handles the Azure Blob Storage authentication internally using connection strings or managed identity. This approach is more secure, reusable, and easier to maintain for enterprise applications.
Hi @kaarthick Velraj
You can implement your own connector to Azure Blob Storage by consuming official Azure API. Second option is to implement custom code using .net and Azure Blob Storage SDK.