Skip to main content

Azure blob Storage in Logic App with Access Policy using http / https connection -


Accessing Azure blob Storage in Logic App with Access Policy using http/https connection.

For this, we will go to azure storage account, under container we will create two policy.

1DayAccess – Read , Create and Write permission on container with validity
ReadAccessOnly – Read only permission on container.

When we create Access Policy, we will also specify the Start and Expiry time of policy, the policy will work only during specified time interval.


Once we have created the Access policy for Blob container, we will create Shared Access Signature for each policy. The SAS will be used to access the container for respective operations.

Open Microsoft Azure Storage explorer, if don’t have storage explorer, you can download the tool and connect to your azure subscriptions.

Right click the container à click Get Shared Access Signature



Click required Access Policy, you will  be able to see list access policy defined.




Click Create button to create URI and Query String


Copy thr URI and try sending some blob data using postman tool, with above URI generated it will give an error



<Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
RequestId:
Time: </Message>
    <AuthenticationErrorDetail>Signature did not match. String to sign used was 
/blob/sablobstoragedemo/$root
1DayAccess
2018-03-28
</AuthenticationErrorDetail>

In the above URL, we have to add blob name in URL for creation request


Now when we tested create operation with above URL, we got success response and blob has been created successfully in container.



Now we will try to perform write operation with ReadAccessPolicy SAS in Postman.

We got following error AuthorizationPermissionMismatch with detailed error message, this is expected as we are trying to perform write operation with ready only access policy.

 <Code>AuthorizationPermissionMismatch</Code>
    <Message>This request is not authorized to perform this operation using this permission.



Using SAS URL in logic app using HTTP connection


We have added Http connection in logic app, now we have to set connection method, URI , Header and other parameter values.




Once you have setup the required property, now trigger the logic app it will perform the create operation on container using specified SAS URL.


Comments

Popular posts from this blog

Azure Repo Step by Step Guide- Move / Migrate Existing/New Repository to Azure Repo

  Move/Migrate your existing/new  repository to Azure Repo   Create Your   New repository in my case I have created “ FabrikamFiber ” We will use git command to push our local repository to Azure Repo. Open command prompt and go to your local code directory : In my case it will be “C:\Ashok\Test\FabrikamFiber>” Local code directory Run the   following command step by step > git init > git remote add FabrikamFiber https://ITS@dev.azure.com/DEMO-Account/ /_git/ FabrikamFiber   (get this path from step 2. Push existing repository using command line) Change origin in actual command with your repo name > git push -u FabrikamFiber –all    Change origin in actual   command with your repo name   This should push your code repository to specified Azure repo. Please refer to following screen for your reference.   In case if you get following   error while executing push comma...

Azure Powershell : Loop through each service bus connections and queue to get ActiveMessageCount and deadLetterMessageCount

Following powershell script can be used to loop through each service bus connections and queue to get Activate Message count and Dead Letter message count. Select-AzSubscription  -Subscription  "SubscriptionName" # Fetch all SB namespaces in subscription Write-Host   "Getting SB Namespaces..." $sbNameSpaces  =  Get-AzServiceBusNamespace   [ System.Collections.ArrayList ] $sbConnectionStrings  =  @ () Write-Host   "Getting Namespace connection strings, please wait..." foreach  ( $sbNameSpace   in   $sbNameSpaces ) {      $sbResult  =  Get-AzServiceBusKey  -ResourceGroupName  $sbNameSpace .ResourceGroupName  -Namespace  $sbNameSpace .Name  -Name RootManageSharedAccessKey     [ void ] $sbConnectionStrings .Add ( $sbResult ) } # Loop all service bus connection...