Testing with Postman

Now we can test the previous service with Postman.

Postman

Postman is a GUI Tool for testing HTTP APIs. It is much popular today that almost all Developers have it installed it in their machine.

You can download latest version of Postman from here.

https://www.getpostman.com/tools

Steps

Following are the steps to use Postman.

Get the Token

Create a new GET REQUEST as shown below.

image

Enter the following Values.

· Auth URL use the URL https://login.microsoftonline.com/Your-AAD-Tenant-Name-OR-Guid/oauth2/token and replace the highlighted area

· Client ID You can get this from Azure > App Service > Properties

· Client Secret You can get this from Client Credentials blad

· Grant Type Hardcode as client_credentials

· Resource You can get this from Service > Expose an API blade

image

Call the Service

Now call the service & If everything went fine you will see the response as below.

image

Now follow these steps:

· Create a new GET request

· Add the highlighted headers below

· Set the Token copied from previous step with the Bearer prefix on it

· Click the SEND button in Postman

On successful execution, you will get the results as shown above.

Summary

In this post you have seen how to call an AAD protected API Service with Postman. In real world scenarios we can combine the Token generation & attaching to Service request as a single step.

References

Postman – Automatically attach Token

AZ300 – AAD Service Registration

Azure Active Directory provides Identity Platform which allows Secured Access to your Application & Services. In this article we can explore how to create a Web API Service & Protect it with AAD App Registration.

Create New API Service

Open Visual Studio & Create a new Web API Service.

image

Run the Service and Ensure you are able to access the Results as displayed below.

http://localhost:62573/api/values

Publish the Service

Now right click on the project & publish the service to Azure App Service.

image

image

You need an Azure Subscription to perform this. You can use following link to do the same.

https://azure.microsoft.com/en-us/free/

Choose the App Service option.

image

Enter the App Service option.

image

Azure App Service is a PaaS (Platform as a Service) way of Hosting web sites.

image

You can test your new App Service with the URL.

https://aadservice2019.azurewebsites.net/api/values

If you are getting the same results, you are good!

Protect the Service

Now we can protect the Service with Azure Active Directory. There is a Quick Way to achieve the same without writing a single line of code.

Go to Azure Portal > App Services blade > Click on your service.

image

Go to Authentication/Authorization blade.

image

Turn App Service Authentication to On. Then in the appearing options choose the following:

· Login with Azure Active Directory

· Choose Azure Active Directory from Authentication Providers > Then choose Express option

Save changes.

Test the Service

Now test the service again with the previous URL. This time you will be prompted for Login.

image

This means the Service is protected from Anonymous Access now.

References

https://docs.microsoft.com/en-us/azure/active-directory/develop/authentication-scenarios

Summary

In this article we have explored how to create a Web API Service & Protect it with AAD App Registration.

Azure Diagnostics Logging

Azure allows storing diagnostics logging to following storages:

  • File System
  • Blob Storage

Activity Log

Go to App Service > Activity Log.  Here you can see the Subscription Level (Billing) information like Publishing, Stopping & Restart service etc. 

image

Diagnose and solve problems

Here you can see the app performance, configuration, certificates related  issues.  image

image

App Service logs

For application level troubleshooting we have to use the App Service logs.  Set the Application Logging to On with Level to Verbose.  You can also make Detailed error messages to On.

image

Log Streaming

After enabling Application Logging & Detailed error messages you can view the App Service > Log Streaming window.  This will give live logging information. 

image

Try accessing the URL again and you should get the Logging text in the above window.  Copy the text and Save as HTML file to view the Sub Level error code & Verbose information.

Advanced Tools (Kudu Console)

Open Advanced Tool (Kudu Console) > Debug > CMD

image

KUDU Console will give multiple log information like Application, IIS, Data, Detailed errors etc.

Cosmos DB Advantages

Cosmos DB is gaining Traction exponentially & I would like to list the advantages of Cosmos DB here.

Globally Distributed means scalable across all countries & regions.

Low Latency is the core advantage of Cosmos DB.  This is achieved through SSD based storage, planet scale flexibility providing Millisecond response time.

Flexible Consistency offered through Varying Consistency Models like Strong, Boundless, Session, Prefix, Eventual.

Flexible Pricing Model allows metering of storage & throughput independently rather than CPU/Memory/IOPs.

Elastic Scalability will scale the database based on the request volumes with No Limits. aka Horizontal Scalability

Multi-Storage Model allows storage of data in form of key-value pairs, documents, graphs & columnar

Multi-API Model allows querying the database in SQL for document, MongoDB for document, Azure Table Storage for key-value, Cassandra for columnar etc.

High Security  achieved through End-to-end Encryption on data-in-transit & data-at-rest.

Application Insights in Azure

Application Insights is a Application Performance Management (APM) Service available for Developers & Administrators.  We can use it for web applications deployed to Azure.

Application Insights provides the following features:

  • Application Availability
  • Performance Monitoring
  • Usage Insights

Application Insights also provides Visual Studio Integration, Support for Windows Phone Store Apps etc.

Creation of Application Insights

Open Azure Portal > Create New Resource > Search Box > Enter Application Insights

image

Select the first option & Choose Create.

image

Enter Information in the appearing dialog.

image

Click the Create button in the bottom.

Wait a few minutes & your Application Insights will be created.

image

Now you are ready with the Application Insights panel as shown below.

image

Create Azure Functions using Visual Studio 2017

In this article we can explore about creating Azure Functions using Visual Studio 2017.

Native Tooling in Visual Studio 2017

Visual Studio 2017 includes the Azure Functions SDK to provide Functions template.

Open Visual Studio > New Project > Choose Azure Functions template as shown below.

image

In the next window choose the Http Trigger option.

image

You will get the following Code generated.

image

Run the application & You will get the following command window.

image

Towards the end you will see the URL to copy.

image

You can copy the URL & PUT in the browser. Since it is using Http GET method you will get the break point hit.

image

References

https://docs.microsoft.com/en-us/azure/azure-functions/functions-overview

Summary

In this article we have explored about Azure Functions template in Visual Studio 2017