Archives For cloud computing

In my previous post I introduced a project that uses PowerShell functions to extend the baseline functionality of the Windows Azure PowerShell Cmdlets published by Microsoft on CodePlex. In that post I provided three PowerShell functions that make it very easy to delete an existing deployment from a Windows Azure hosted service. In this post I’m going to focus on the Windows Azure Access Control Service (ACS).

In my opinion ACS is one of the most powerful components of the Windows Azure platform as it enables you to easily outsource identity management from your applications to known identity providers such as Windows Live, Google, Yahoo, Facebook, Active Directory Federation Services, and other providers that implement the WS-Federation protocol. The cmdlets provided by Microsoft allow you to automate the management of your ACS namespaces. One function that is a part of this API is called Add-IdentityProvider that enable you to do exactly that, add an identity provider to an ACS namespace. If you run the get-help command with the –detailed switch, you’ll see that the function has 15 parameters.

As you can see, there is a lot of flexibility in this one function, which has positives and negatives. For some of the things I do I just want to be able to quickly add one of the preconfigured identity providers (Google and Yahoo!) It’s not difficult to accomplish with the Add-IdentityProvider function, but I just wanted to make it a bit easier. To that end I created a repository on github to house the scripts. You can browser the repository here. Currently there are six scripts in the repository:

./Identity-Providers/Add-GoogleIdentityProvider
Adds Google as an identity provider to a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Add-PreconfiguredIdentityProvider
Adds a preconfigured identity provider identity provider to a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Add-YahooIdentityProvider
Adds Yahoo as an identity provider to a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Remove-GoogleIdentityProvider
Removes Google as an identity provider from a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Remove-PreconfiguredIdentityProvider
Removes a preconfigured identity provider from a Windows Azure AppFabric namespace with the Access Control Service enabled.

./Identity-Providers/Remove-YahooIdentityProvider
Removes Yahoo as an identity provider from a Windows Azure AppFabric namespace with the Access Control Service enabled.

Once again, you can get the scripts here.

Hope it helps!

How Did He Do That?

January 20, 2012

This past Wednesday I gave a talk at the Chippewa Valley .NET User Group entitled “You Can Do What in Windows Azure?!” In the session I showed how to use things like remote desktop, startup tasks, PowerShell, Node.js, and more with the Windows Azure  platform. If you’re wondering how I did some of the demos, I invite you to follow the links below.

Using Remote Desktop with Windows Azure Roles
http://msdn.microsoft.com/en-us/library/windowsazure/gg443832.aspx

Overview of Startup Tasks for Roles in Windows Azure
http://msdn.microsoft.com/en-us/library/windowsazure/hh124132.aspx

How to Define Startup Tasks for a Role
http://msdn.microsoft.com/en-us/library/windowsazure/gg456327.aspx

WebPICmd Command-Line Tool for Windows Azure
http://go.microsoft.com/?linkid=9752821

How to Use the WebPICmd Command-Line Tool
http://msdn.microsoft.com/en-us/library/windowsazure/gg433092.aspx

Using Windows Azure Connect to Create virtual Networks
http://msdn.microsoft.com/en-us/library/windowsazure/gg445026.aspx

Windows Azure Powershell Cmdlets
http://wappowershell.codeplex.com/

Node.js home page
http://nodejs.org

Windows Azure Node.js Developer Center
http://www.windowsazure.com/en-us/develop/nodejs/

Enjoy!

Recently I’ve been diving into the Windows Azure PowerShell Cmdlets published by Microsoft on CodePlex. First off, let me say that I think these tools are incredible powerful. They allow you easily automate the management of numerous components of the Windows Azure platform (including hosted services, storage, SQL Azure, and the Access Control Service). However as I began to really get into the API’s I found one feature was missing from cmdlets that involve managing hosted services. The feature is the ability to simply delete a deployment. Don’t misunderstand me, you can cobble several calls together to delete a deployment. Here’s what you would have to do:

Notice, you have to suspend the deployment first before you can remove it. Failing to put the deployment in a suspended state before attempting to remove it will result in an exception. Also notices you have to specify which slot you want to remove the deployment from.

While the above method, wouldn’t it be nicer if you could call something like Delete-Deployment that would perform both the suspend and remove operations? Taking it one step further, wouldn’t it be even nicer if you could call something like Delete-StagingDeployment and Delete-ProductionDeployment so you didn’t have to specify which slot you wanted to remove the deployment from in your arguments? Well I think so, and if you’re still reading you probably think so to. I decided to take action and create a repository on github to house scripts that contain functions to extend the tools provided by Microsoft. You can browse the repository here. Currently there are three scripts in the repository:

./Deployments/Delete-Deployment
Deletes a deployment from a specified slot

./Deployments/Delete-ProductionDeployment
Deletes a deployment from the production slot

./Deployments/Delete-StagingDeployment
Deletes a deployment from the staging slot

Each script is documented and contains examples which you can view when running in PowerShell by using the get-help command.

Once again, you can get the scripts here.

Hope this helps.

Upcoming Events

January 6, 2012

On January 17, 2012 I will be speaking at the Chippewa Valley .NET Users Group. The topic for the evening is You Can Do What in Windows Azure?! Here’s an abstract of the session:

You already know you can run your .NET based web sites, services, and applications on Windows Azure, but this only scratches the surface of what you can do. Encoding video with Expression Encoder, hosting adaptive streaming video in blob storage, hosting multiple web sites, enabling remote desktop, running php, node.js, and MongoDB, creating a VPN and more are all possible with the Windows Azure platform. In this demo intensive session I’ll show you how to do amazing things to unleash the power of Azure.

You can find out more about the session and register for it here.

On January 19, 2012 I’ll be giving a new presenting at the Twin Cities Connect Systems User Group. The topic for this talk is Securing WCF Services with the Windows Azure Access Control Service. Here’s a taste of what we’ll be covering:

Integrating your WCF services with third-party authentication and identity management systems can be a daunting task. Some of the common challenges associated with this task include:
•    Configuring WCF bindings to request a token from ACS
•    Validating the incoming token issued by the identity provider
•    Parsing the incoming token
•    Implementing authorization checks
•    Transforming tokens by adding, removing, or changing the claims types and values
•    Using configuration rather than code to accomplish all of the above

In this session we’ll look at how to use the Windows Azure Access Control Service (ACS) to tackle these challenges. We’ll start by covering the basics of identity management and ACS. From there we’ll look at how to secure WCF services via ACS using the following methods:
•    WCF Username Authentication
•    WCF Certificate Authentication
•    WCF Federated Authentication with AD FS 2.0

You can find out more about this event and register for it here.

In this epiosde Adam Grocholski shows you how to automate the deployment and management of your Windows Azure services with Powershell.

I show you how to completely customize your Windows Azure roles using startup tasks.

I show you how to bridge the gap between on-premises and Windows Azure resources using Windows Azure Connect.

I show you how to work with the abstraction of the Windows Azure file system called Local Storage.

I show you how to configure your Windows Azure roles so that they can be accessed in the cloud via Remote Desktop.

In this session I show you how to use Windows Azure queues to build loosely coupled workflows in the cloud.