Connecting to an OAuth 2.0 protected OData Service

This post creates a Windows Phone 7 client application for the OAuth 2.0 protected OData service we created in the last post. Prerequisites: To run this code you will need: An AppFabric Access Control Services (ACS) instance & OData Service configured as described in the previous blog post. Windows Phone 7 Developer Tools Data Services… Read more

OData and OAuth – protecting an OData Service using OAuth 2.0

In this post you will learn how to create an OData service that is protected using OAuth 2.0, which is the OData team’s official recommendation in these scenarios: Delegation: In a delegation scenario a third party (generally an application) is granted access to a user’s resources without the user disclosing their credentials (username and password)… Read more

OData and Authentication – Part 8 – OAuth WRAP

OAuth WRAP is a claims based authentication protocol supported by the AppFabric Access Control (ACS) which is part of Windows Azure. But most importantly it is REST (and thus OData) friendly too. The idea is that you authenticate against an ACS server and acquire a Simple Web Token or SWT – which contains signed claims… Read more

OData and Authentication – Part 7 – Forms Authentication

Our goal in this post is to re-use the Forms Authentication already in a website to secure a new Data Service. To bootstrap this we need a website that uses Forms Auth. Turns out the MVC Music Store Sample is perfect for our purposes because: It uses Forms Authentication. For example when you purchase an… Read more

OData and Authentication – Part 6 – Custom Basic Authentication

You might remember, from Part 5, that Basic Authentication is built-in to IIS. So why do we need ‘Custom’ Basic Authentication? Well if you are happy using windows users and passwords you don’t. That’s because the built-in Basic Authentication, uses the Basic Authentication protocol, to authenticate against the windows user database. If however you have… Read more

OData and Authentication – Part 5 – Custom HttpModules

In the last post we saw how to add custom authentication inside your Data Service using the ProcessingRequest event. Unfortunately that approach means authentication is not integrated or shared with the rest of your website. Which means for all but the simplest scenarios a better approach is needed: HttpModules. HttpModules can do all sort of… Read more

OData and Authentication – Part 4 – Server Side Hooks

If you secure an OData Service using Windows authentication – see Part 2 to learn how – everything works as expected out of the box. What however if you need a different authentication scheme? Well the answer as always depends upon your scenario. Broadly speaking what you need to do depends upon how your Data… Read more

OData and Authentication – Part 3 – ClientSide Hooks

So far in this series we’ve looked at Windows Authentication. For both Windows and Basic Authentication, Data Services does the authentication handshake and subsequent sending of authentication headers – all without you directly setting a http header. It can do this because there is a higher level abstraction – the Credentials property – that hides… Read more

OData and Authentication – Part 2 – Windows Authentication

Imagine you have an OData Service installed on your domain somewhere, probably using the .NET Data Services producer libraries, and you want to authenticate clients against your corporate active directory. How do you do this? On the Serverside First on the IIS box hosting your Data Service you need to turn on integrated security, and… Read more

OData and Authentication – Part 1

Here on the Data Services team we hear many people ask about authentication. Questions like: How do you ‘tunnel’ authentication over the OData protocol? What hooks should I use in the WCF Data Services client and server libraries? The answer to these questions, depends a lot upon scenario, in fact each authentication scenario presents unique… Read more