OAuth is a new wave in the website security protocol or to be precise an API access delegation protocol’. OAuth allows a client application to obtain user consent (as access tokens) for executing operations over private resources on his behalf.
OAuth allows you to share your private resources (photos, videos, contact list, bank accounts) stored on one site with another site without having to hand out your username and password. There are many reasons why one should not share their private credentials. Giving your email account password to a social network site so they can look up your friends is the same thing as going to dinner and giving your ATM card and PIN code to the waiter when it’s time to pay. Any restaurant asking for your PIN code will go out of business, but when it comes to the web, users put themselves at risk sharing the same private information. OAuth here comes to the rescue.
If you want to know more about how OAuth works, you should read the following posts
- “Begginer’s Guide to OAuth – Part I”
- “Begginer’s Guide to OAuth – Part II – Protocol Workflow”
- “Begginer’s Guide to OAuth – Part III – Security Architecture”
Now, if we analyze the specification in more detail, we will see that the real purpose behind OAuth is to create a network of collaboration between applications. It will not be necessary anymore to keep all our stuff just in a single place, we can have for instance our pictures in a website, our contacts in another place and a third application making use of them, all these applications collaborating together.
Currently we hear OAuth being mostly associated with the social networking sites like Twitter, yahoo, google etc. However this is going to change in future, I see it being implemented in the cloud computing environment to provide more seamless access. Google has released its OpenID/OAuth implementation. This is a major step forward in the Interoperability field. The work that Google has released is very important and it will allow, for instance, that a user from Zoho Writer can use data from a Google Docs Spreadsheet and then make the result available in his Linkedin profile.
Similarly I think with Microsoft releasing its new cloud computing platform Azure. The OAuth definitely comes into play more so important than ever before.
Some of the OAuth .NET Faremwork Library available are :
- Alex Henderson (Aka Bittercoder) has written a pretty good OAuth library in .NET for implementing an OAuth consumer and service provider. The library is available here under a MIT license (do wherever you want with it), and it is very easy to use. Alex has definitively made a very good work.
- Madgex has released an open source OAuth library for .NET (released under the MIT License). Documentation and demos are available.
- C# Eran Sandler has contributed a basic C# class that performs signing.
- VB.NET Nicolas Tarzia has translated Eran Sandler’s C# library into VB.NET.
Here is some OAuth Implementation examples in .NET
- Pablo M. Cibraro (aka Cibrax) has given a great example of implementing OAuth Channel for WCF.
- For implementing OAuth in ASP.NET MVC
Don’t forget DotNet OpenAuth:
http://dotnetopenauth.net:8000/
It’s a pretty popular OAuth and OpenId library.
Cheers,
– Alex
November 16th, 2009 at 3:33 amQuote
Thanks for reminding. I almost forgot to mention the source for LINQ TO TWITTER which uses dotnet OpenAuth
November 16th, 2009 at 6:56 pmQuote