- Load
- Duration
- Response time
- Error percentage
- Throughput
Thursday, September 19, 2024
Performing URL-Based Load Testing with Azure Load Testing
Tuesday, September 10, 2024
Debugging API Startup Errors Using Kudu in Azure App Service
Recently, I had to debug a .NET API hosted in an Azure Web App. The API failed to bootstrap and returned only a generic error message, which provided little insight into the issue.
Unfortunately, the application lacked Application Insights integration, making the troubleshooting process even more challenging.
Following is the approach I took.
I navigated to the Development Tools section of the App Service and accessed Advanced Tools to investigate further.
From there, I navigated to Kudu and accessed the Debug Console to further analyze the issue.
Navigate to wwwroot location and locate the particular exe of your API
I executed the .exe file directly in the Debug Console to capture the specific error message and identify the root cause of the issue.
By running the .exe file, I was able to see the detailed error message, which revealed that a required configuration item was missing for the application.
Saturday, September 7, 2024
Configuring Postman to Retrieve an OAuth 2.0 Token from Entra ID for Calling an API via APIM
This article is the second part of a two-part series. Below are the different parts of this article series.
- Securing Backend API Using OAuth with Entra ID and Azure API Management
- Configuring Postman to retrieve an OAuth 2.0 token from Entra ID for calling an API via APIM
#Auth URL
OAuth 2.0 authorization endpoint (v2) in the Endpoints view of your client app registration
#Access Token URL
OAuth 2.0 token endpoint (v2) in the Endpoints view of your client app registration
#Client ID
Client ID of your client app registration
#Client Secret
#Client ID
Client secret you generated within your client app registration
#Callback URL
Redirect URL from the Authentication section (Shown in below diagram)
Wednesday, August 21, 2024
Using Azure's Diagnose & Solve Problems Feature to Troubleshoot Cloud Issues
You might encounter errors in your Azure cloud workloads and take various measures to resolve them. However, Azure provides built-in assistance through the Diagnose & resolve problems feature.
The Diagnose & solve problems feature in Azure is an intelligent troubleshooting tool designed to help users identify and resolve issues.
Here is an instance where I used this feature to troubleshoot a connectivity issue with an Azure Storage Account firewall.
I enabled the firewall on my storage account to restrict access to a specific public IP address.
And I have whitelisted my public IP address as shown below
Despite configuring it as mentioned above, I still encountered the following error when I tried to access the container. This is when I used the Diagnose & solve problems feature.
I selected Firewalls & Virtual Networks section
Next I selected Connectivity issues after enabling storage firewall
Here is the final response I received, which revealed that I had whitelisted the wrong IP address.
This allowed me to resolve the issue very quickly
Tuesday, August 13, 2024
Securing Backend API Using OAuth2 with Entra ID and Azure API Management
- Configuration of Entra ID App Registrations
- Configuration of APIM OAuth2 service
- Configuration of OAuth 2 settings within the API in APIM
- Test using the Test console
- One for the backend API that we are securing.
- Another for the client that will call our API, which could be the APIM Developer Portal or Postman.
#Authorization endpoint URL
https://login.microsoftonline.com/<Tenant ID>/oauth2/v2.0/authorize
#Token endpoint URL
https://login.microsoftonline.com/<Tenant ID>/oauth2/v2.0/token
<inbound>
<base />
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
<openid-config url="https://login.microsoftonline.com/<YOURTENANTID>/v2.0/.well-known/openid-configuration" />
<required-claims>
<claim name="aud">
<value>319aa8ca-f607-45c3-ac83-e3a510666883</value>
</claim>
</required-claims>
</validate-jwt>
</inbound>