Enable client certificate for Azure web site fails with 400 Bad Request

  Problem: Customer follows this blog to use armclient to enable client certificate for his web site.  Issuing the armclient PUT command results in the following error: HTTP/1.1 400 BadRequest Pragma: no-cache Strict-Transport-Security: max-age=31536000; includeSubDomains x-ms-ratelimit-remaining-subscription-writes: 1199 x-ms-request-id: befeee1f-ac33-4d84-8f04-0ff36d9aa698 x-ms-correlation-request-id: befeee1f-ac33-4d84-8f04-0ff36d9aa698 x-ms-routing-request-id: WESTUS2:20170312T180143Z:befeee1f-ac33-4d84-8f04-0ff36d9aa698 Cache-Control: no-cache Date: Sun, 12 Mar 2017 18:01:42 GMT ETag: “1D29B57E7FD6890” Server:…


Deploying a web app with .NET

Overview A walkthrough on creating a new web app from a Console app using .NET. This is not to be confused with deploying new code to an existing web app, it is a programmatic way to create web apps in a similar fashion to ARM or creation through the portal. Walkthrough 1. To begin, create…


Azure Functions : NLog and Database

Here are steps to write NLog to Database in Azure Functions   1. via Config (NLog.config) <?xml version=“1.0“ encoding=“utf-8“ ?> <nlog xmlns=“http://www.nlog-project.org/schemas/NLog.xsd“       xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“>   <targets>     <!–<target name=”logfile” xsi:type=”File” fileName=”file.txt” />–>     <target name=“logfile“ xsi:type=“Database“ connectionstring=“Server=dbservername.database.windows.net,1433;Initial Catalog=dbname;Persist Security Info=False;User ID=dbuser;Password=password; MultipleActiveResultSets=False; Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;“>       <commandText>         insert into LogTable(time_stamp,level,logger,message) values(@time_stamp, @level, @logger, @message);…


How to get a System.Net trace of your C# Web Job

Overview In Azure App Services C# based Web Jobs, you can see the network traffic that is using the System.Net socket and related .Net classes using this functionality.  This should be only used to temporarily grab traces as the log will grow quite large and it (as with any logging) will decrease performance slightly. Walkthrough…


Azure App Service Authentication–AAD Groups

Overview I wanted an easy way to leverage Azure AD Groups in my application.  Thanks to Dushyant and my previous post on App Roles, I was able to throw together a sample.  references: Authorization in Cloud Applications using AD Groups , Azure App Service Authentication – App Roles  NOTE: If your user/org uses many groups,…


Bot Framework Error: “Unable to find the bot with the specified ID”

Overview We have seen several cases when a user tries to open a Bot Service from their Azure portal and it returns an error for “Unable to find the bot with the specified ID”. Resolution This happens when a user tries to access a Bot Service that was created by another user on the Subscription….


Azure App Service Authentication – App Roles

Overview You can use app roles easily with the baked in Azure AD based Azure App Service Authentication functionality to control access to parts of your application.  You can then leverage ASP.Net functions such as User.IsInRole(“Admin”) and  [Authorize(Roles = “Admin”)] in your Controllers, APIs and Pages to restrict or allow access.  Azure Active Directory makes…


How do I determine the outbound IP addresses of my Azure App Service

Issue Some network environments are locked down via a Firewall and allow only whitelisted IP addresses inbound to their internal network.  Common questions are, “what is my Azure Web App, Azure Mobile App (insert your type of Azure App Service here) outbound IP address”?  What IP addresses do I need to whitelist for Azure?  Even…


Incident Report from GoDaddy Regarding Azure App Service Certificates

Summary On Friday, January 6th, 2017, GoDaddy became aware of a bug affecting their domain validation processing system. This bug was fixed late Friday.  At 10 PM PST on Monday, Jan 9th, they completed the review to determine the scope of the problem, and identified the certificates that were affected by the bug. The impacted…


Slot Swap with Preview

Slot Swap with Preview enables us to run production specific app setting and database connection string in a slot website. This allows us to completely test the new deployment with actual production setting. Slot Swap with Preview also allows us to execute warm-up code so that website doesn’t have any slow perf issues due to…