Tidy up - Unused Project and Nuget package reference using Visual Studio 2019

If you are a Developer/Architect using Visual Studio as IDE for your development activities, this blog post will be of your interest. During the Ignite 2021 conference, Microsoft released Visual Studio 2019 v16.9 and v16.10 Preview 1. As part of version 16.10 Preview 1, one of the cool features they introduced is to "Remove Unused References..." for any Projects and Nuget packages that are not in use. At the time of writing this blog post, we have Visual Studio Version 16.10.0 (official release) which includes this new feature.  As part of development, we generally get carried away and introduce new Nuget package references to your project and add new references to your Projects. By the end of development, you will not be 100% sure which are not being referenced and unused which means you will leave those unused project references in your application. Now you might be wondering what's the big deal in it since it doesn't harm. The advantage of removing unused project r

Authenticate Azure Functions - API Keys

In this blog post, we will see one of the ways to secure your Azure Functions using API keys. Security plays a key role as part of SDLC (Software Development Life Cycle) doesn't matter whether it's exposed to the client/public or even if it's internal. There are multiple ways to secure your Azure Functions like API Keys, Certificate,  API Mgmt, App Service Authentication, etc. If you are new to the Cloud and Azure Functions but want to make a start with minimal effort and less setup of Infrastructure, then API Keys is the ideal choice.

Azure Functions allows you to secure HTTP-triggered functions by API access key in the request. As part of creating new Azure Functions, we can select the Authorization Level enum value. If we set the Authorisation level to Anonymous, no security applied which means no authentication applied for the endpoint.

Authorization Level - Function

By setting the Authorisation level to Function each Azure Functions require a specific API key to Authorize. Each deployed instance of Azure Function will have its own keys. A Host API key allows access to any function within the function app.

Authorization Level - Function


As part of creating Azure Functions with Authorization level - Function, the default key will be created named "default" as shown in the below screenshot. If you want to add your own custom key you can do it by navigating under "Functions" - "Function Keys" blade in the Azure portal. The below screenshot shows both the default key and the custom key (created manually).

Function Keys

Using Postman let's quickly verify. As part of the request passing in the header API Key value for the header name "x-functions-key" should work for us. As mentioned above you can verify the same using custom API keys or Host key as well.

Verify using Postman

Note: The Function level should be used if you want to give other systems or users access to this specific Azure Function in your deployment.

Authorization Level - Admin

If you are looking for a single API key for all your Azure Functions in the deployment then make use of Authorization Level to Admin. 

Authorization Level - Admin

From the Azure Portal we can set Admin API Keys for all Azure Functions as shown below. Using Postman you can verify the request by passing in the header API Key value for the header name "x-functions-key" should work for us. 

Authorization Level - Admin



References

Comments

Popular posts from this blog

Tidy up - Unused Project and Nuget package reference using Visual Studio 2019

Swagger UI for Azure Function v2 & v3 APIs