OAuth Security for Gateways Zhenhua (Gerald) Guo and Marlon Pierce Indiana University.

Slides:



Advertisements
Similar presentations
The How of OAuth OAuth Hackathon – Six Apart
Advertisements

Written by Liron Blecher
Overview of Twitter API Nathan Liu. Twitter API Essentials Twitter API is a Representational State Transfer(REST) style web services exposed over HTTP(S).
Smartphone-based authorization system Advisor: Dr. Wenjun Zeng - Professor Presenter: Yilihamujiang, Ailiyasijiang Zhou, Guanlong Al-Sinani, H. S. (2011).
OAuth 2.0 By “PJ” (JP on meetup.com) iOS and PHP developer, and occasional lawyer Contact me via:
Developing Grid User Interface Components Portlets, gadgets, etc.
© 2009 GroundWork Open Source, Inc. PROPRIETARY INFORMATION: Information contained herein is not for use or disclosure outside of GroundWork Open Source,
Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
Inter-Institutional Registration UNC Cause December 4, 2007.
SSL Implementation Guide Onno W. Purbo
Grid Computing, B. Wilkinson, 20045a.1 Security Continued.
SSL CS772 Fall Secure Socket layer Design Goals: SSLv2) SSL should work well with the main web protocols such as HTTP. Confidentiality is the top.
Lecture 23 Internet Authentication Applications
Hannes Tschofenig (IETF#79, SAAG, Beijing). Acknowledgements I would like to thank to Pasi Eronen. I am re- using some of his slides in this presentation.
Environmental Council of States Network Authentication and Authorization Services The Shared Security Component February 28, 2005.
Scale Up Access to your 4GL Application using Web Services
 Key exchange o Kerberos o Digital certificates  Certificate authority structure o PGP, hierarchical model  Recovery from exposed keys o Revocation.
Servlets and a little bit of Web Services Russell Beale.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 17 Prof. Crista Lopes.
Certificates, SSL and IPsec Ahmed Muaydh Sara Bin Saif Shi-Jey Chou Advisor:Dr. Leszek Lilien.
Network Security – Part 2 V.T. Raja, Ph.D., Oregon State University.
Cookies COEN 351 E-commerce Security. Client / Session Identification HTTP does not maintain state. State Information can be passed using: HTTP Headers.
Toward an OpenSocial Life Science Gateway Wenjun Wu, Michael E. Papka, Rick Stevens.
APACHE SERVER By Innovationframes.com »
SSL Technology Overview and Troubleshooting Tips.
Cryptography 101 Frank Hecker
8/19/20151 Securing a Database Based on notes by Fei Li and Hong Li.
CSCI 6962: Server-side Design and Programming
IDENTITY MANAGEMENT Hoang Huu Hanh (PhD), OST – Hue University hanh-at-hueuni.edu.vn.
Smart Card Single Sign On with Access Gateway Enterprise Edition
Digital Cash By Gaurav Shetty. Agenda Introduction. Introduction. Working. Working. Desired Properties. Desired Properties. Protocols for Digital Cash.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
CHAPTER 2 PCs on the Internet Suraya Alias. The TCP/IP Suite of Protocols Internet applications – client/server applications The client requested data.
Remotely authenticating against the Service Framework.
Towards a Javascript CoG Kit Gregor von Laszewski Fugang Wang Marlon Pierce Gerald Guo
A Guide to Secure Web Services with GJXML Hey I downloade d an IEPD! Cool, how do you write a web service? I use.NET Moo! I use Java.
Lecture 23 Internet Authentication Applications modified from slides of Lawrie Brown.
Web Services An introduction for eWiSACWIS May 2008.
Computer Security: Principles and Practice First Edition by William Stallings and Lawrie Brown Lecture slides by Lawrie Brown Chapter 22 – Internet Authentication.
Unit 1: Protection and Security for Grid Computing Part 2
.Net and Web Services Security CS795. Web Services A web application Does not have a user interface (as a traditional web application); instead, it exposes.
Deployment via jars and Webstart. How do we distribute our application? Lab says you need to submit CD Lab says you need to submit CD Limitations of CD.
G CITRIXHACKIN. Citrix Presentation Server 4.5 New version is called XenApp/Server Common Deployments Nfuse classic CSG – Citrix Secure Gateway Citrix.
Integrating and Troubleshooting Citrix Access Gateway.
Your friend, Bluestem. What is Bluestem? “Bluestem is a software system which enables one or more high-security SSL HTTP servers in a domain (entrusted.
TIBCO BusinessWorks.  Generating the key   You will have to create a certificate as you own the server.  The ‘Keytool’ is a utility provided in the.
Demo : OpenSign Server & Java Client Works with: OpenSign Sever Version 0.4 and OSSJClient Version 0.9.
1 Thuy, Le Huu | Pentalog VN Web Services Security.
Web2.0 Secure Development Practice Bruce Xia
Esri UC 2014 | Demo Theater | Using ArcGIS Online App Logins in Node.js James Tedrick.
Security Considerations
Secure Mobile Development with NetIQ Access Manager
LAB#8 PKI & DIGITAL CERTIFICATE CPIT 425. Public Key Infrastructure PKI 2  Public key infrastructure is the term used to describe the laws, policies,
CAS Proxying and Web Services The somewhat “easy way” Presented By: Joseph Mitola Programmer/Analyst Office Of The Registrar.
@Yuan Xue CS 285 Network Security Secure Socket Layer Yuan Xue Fall 2013.
Dr. Michael B. Jones Identity Standards Architect at Microsoft
Data Virtualization Tutorial… SSL with CIS Web Data Sources
HMA Identity Management Status
Data Virtualization Tutorial… OAuth Example using Google Sheets
Node.js Express Web Services
All about social networking
Flickr Authentication
X-Road as a Platform to Exchange MyData
SharePoint Online Authentication Patterns
Office 365 Development.
Building production-ready APIs with ASP.NET Core 2.2
SSL certificates TIBCO BusinessWorks.
Western Mass Microsoft Technology Users Group
Computer Network Information Center, Chinese Academy of Sciences
Cross Site Request Forgery (CSRF)
Presentation transcript:

OAuth Security for Gateways Zhenhua (Gerald) Guo and Marlon Pierce Indiana University

OAuth and Gateways OAuth is a security protocol for Web applications. Security for REST and XML-RPC services. Three-legged OAuth – Human-application-application security – Security flaw, currently being revised – Two-legged OAuth – Application-to-application security with no human interactions.

OAuth in the Wild ProviderDescription TwitterTwitter allows you to access private data through OAuth as an alternative to standard HTTP Authentication Google2-legged OAuth is used by Open Socials REST/RPC API. Allows gadgets in different containers to exchange data (Orkut LinkedIn, for example). Ma.gnoliaSocial bookmarking service, now defunct. OAuth was co-developed by these guys. FlickrPassword protected services can be accessed via OAuth instead. DrupalUsed for Drupal-to-Drupal interoperability

Delegation through Authentication User: this is the human Service Provider: a Web service that provides access to the Users data. Consumer: a Web application needing access to the Users data on the Service Provider The basic idea is that the User delegates authority to the Consumer to access his/her personal data on the Service Provider.

Parameter NameDescription oauth_consumer_keyConsumer uses this to prove identity to the Server. oauth_tokenRequest and access tokens (optional). oauth_signature_methodMethod (like HMAC-SHA1) used to sign the request. oauth_signatureContains a hash or signing of the request parameters using the consumers private key or a shared secret. oauth_timestampThe time of the invocation. oauth_nonceA random string that allows the service provider to verify that the invocation is unique to stop replay attacks. oauth_versionThe protocol version number. You can send these in HTTP Authorization Headers, in HTTP POST, or in HTTP GET

OAuth REST Example URL ?oauth_consumer_key =orkut.com%3A &oauth_nonce = &oauth_timestamp = &oauth_signature =0h%2FU49KtBplnmnc%2BhDKsDxFPR9%3D &oauth_signature_method =HMACSHA1 &oauth_token= &xoauth_requestor_id = &oauth_version=1.0 That is, the API is all about generating, invoking, and managing the response of the above URL. The example is taken from two-legged OAuth. The optional token parameter is blank.

3-Legged, from

Getting Tutorial Examples

Tutorial Example Code We provide example Consumer and Service Provider codes. – In Java The Consumer example can also work with third party applications (Twitter). The Service Provider example supports both 2- and 3-legged OAuth.

Building the Examples Check out from OGCE SourceForge SVN – svn checkout tor/OGCE-OAuth tor/OGCE-OAuth Build with Apache Maven 2 – cd OGCE-Oauth – mvn clean install Fire up the server: –./portal_deploy/apache-tomcat /bin/startup.sh

Creating a Public/Private Key Pair Youll need a key pair for the Service Provider demo. – Openssl tools wont work with Java very easily. – Use Javas keytool instead. Use something like this: – keytool -genkey -keyalg RSA -keysize alias oauth-demo - dname "cn= dhcp-bl.indiana.edu, ou=OGCE, o=OAuth, c=US – The cn value must be the DN of your server. Next export the public key. – keytool -alias oauth-demo-rsa -export -rfc -file mycert.pem Finally export the private key with the convenient code (keytool wont do this). – java ExportPrivateKey $HOME/.keystore JKS changeit oauth- demo-rsa mykey.pem

A Quick FAQ Can I use this code? – Yes, feel free. But give us credit. What do I need for my development environment? – Computer with Java 1.5 or greater and a real domain name/IP. Can I use in my URLs? – No, you need to use your computerss full DN for both the consumer and server pieces. Is there extensive, professionally written documentation with artistically appealing pictures somewhere? – Not yet.

Using Demo OAuth Consumer with Twitter

Provide some descriptive metadata about yourself Callback URL should point to your callback service. It must be a DN (not IP). For example: th/Callback

Youll need this to use the Twitter service from the Consumer interface. Note you should not normally put secret keys in power point slides. This one has been disabled.

This is one example service. See more at

Log in to the Consumer interface to get to the Account management interface

Add a consumer. The key, secret, and URLs all come from Twitters Application Details page.

Bind a private key to your account on the consumer. This is a demo implementation detail.

Redirected for authorization Retrieve illegible XML.

Using the Service Provider Interface

Log in to the server. Choose Developer Account Add or edit an existing application

Register a service. This is equivalent to the Twitter registration process.

Set privileges for a given user.

As Consumer, now add the Echo Service. We did the same thing earlier for Twitter service.

A)Invoke the service from the client, B)Authorize the client, C)Gaze upon the output.