Consuming OAuth Services in Alfresco Share

Slides:



Advertisements
Similar presentations
Different Approaches to Single-Sign-On Jeff Kahn, Verbena Consulting.
Advertisements

Overview of Twitter API Nathan Liu. Twitter API Essentials Twitter API is a Representational State Transfer(REST) style web services exposed over HTTP(S).
FI-WARE Testbed Access Control temporary solution.
OAuth 2.0 By “PJ” (JP on meetup.com) iOS and PHP developer, and occasional lawyer Contact me via:
Contrail and Federated Identity Management
Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
WSO2 Identity Server Road Map
1 Trillion Azure AD authentications since the release of the service 50 M Office 365 users active every month >1 Billion authentications every.
GRDevDay March 21, 2015 Cloud-based Identity for Applications.
Clients using wide variety of devices/languages/platforms Server applications using wide variety of platforms/languages Browser Native app Server.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Building Secure Applications.
Practical Steps to Secure your APIs for Mobile Mark O’Neill VP Innovation, Axway.
SPC204 Security Problems in SharePoint 2010 Authentication and Authorization.
OAuth 2.0 in Depth By Rohit Ghatol SynerzipSynerzip Passionate about TechNextTechNext.
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control Maarten
Session 11: Security with ASP.NET
Remotely authenticating against the Service Framework.
Access Gateway Operation
Lecture 15 Introduction to Web Services Web Service Applications.
FIspace SPT Seyhun Futaci. Technology behind FIspace Authentication and Authorization IDM service of Fispace provides SSO solution for web apps, mobile.
Workgroup Discussion on RESTful Application Programming Interface (API) Security Transport & Security Standards Workgroup January 12, 2014.
Copyright ©2012 Ping Identity Corporation. All rights reserved.1.
Identity on Force.com & Benefits of SSO Nick Simha.
Module 5 Configuring Authentication. Module Overview Lesson 1: Understanding Classic SharePoint Authentication Providers Lesson 2: Understanding Federated.
Windows 8 Application Microsoft Word with Apps For Office Internal O365 SharePoint Site Windows Azure Cloud Services Windows Azure Workflow Server.
Paul Andrew. Recently Announced… Identity Integration Options 2 3 Identity Management Overview 1.
SOA-39: Securing Your SOA Francois Martel Principal Solution Engineer Mitigating Security Risks of a De-coupled Infrastructure.
SSO Case Study Suchin Rengan Principal Technical Architect Salesforce.com.
Claims-Based Identity Solution Architect Briefing zoli.herczeg.ro Taken from David Chappel’s work at TechEd Berlin 2009.
Adxstudio Portals Training
Securing Angular Apps Brian Noyes
Esri UC 2014 | Demo Theater | Using ArcGIS Online App Logins in Node.js James Tedrick.
Security Considerations
API Auth By Kyle Bradley. Role Definitions  User (Resource Owner)  The resource owner is the person who is giving access to some portion of their account.
Virtual techdays INDIA │ November 2010 Integrating Social Networks with ASP.NET Krishna Chaitanya T │ Future Web Research Lab, SETLabs, Infosys WE.
Secure Mobile Development with NetIQ Access Manager
#SummitNow Consuming OAuth Services in Alfresco Share Alfresco Summit 2013 Will Abson
#SummitNow Alfresco for Salesforce 5 November 2013 / 13 November 2013 Will Abson Jared Ottley
#SummitNow Lessons Learnt From Share Extras Alfresco Summit 2013 Will Abson
Unlocking the Secrets of Alfresco Authentication Mehdi BELMEKKI, Consultancy Team Alfresco.
Redmond Protocols Plugfest 2016 Ron Starr, Paul Bartos, Hagit Galatzer, Stephen Guty New and Modified Windows Protocol Documents.
Developers Introduction to the Power BI Platform.
Alain Bethuyne Web Security Architect BNPParibas Fortis
Secure Single Sign-On Across Security Domains
Javascript Console, what's new!?
Ask the Experts – Building Login-Based Sites in AEM
Setting and Upload Products
4/18/2018 1:15 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Federation made simple
Migrating SharePoint Add-ins from Azure ACS to Azure AD
Identity Federations - Overview
Cosc 5/4730 REST services.
Data Virtualization Tutorial… OAuth Example using Google Sheets
What is REST API ? A REST (Representational State Transfer) Server simply provides access to resources and the REST client accesses and presents the.
Azure AD Line Of Business Application Integration
Cloud Connect Seamlessly
WEB API.
IS 360 Course Introduction
A few recent days in the news…
Agenda OAuth Concepts Programming OAuth.
Matthew Levy Azure AD B2B vs B2C Matthew Levy
SharePoint Online Authentication Patterns
Office 365 Development.
Token-based Authentication
Technical Integration Guide
Western Mass Microsoft Technology Users Group
Computer Network Information Center, Chinese Academy of Sciences
Microsoft Virtual Academy
MicroToken Exchange Data Security Solutions
Presentation transcript:

Consuming OAuth Services in Alfresco Share Alfresco Summit 2013 Will Abson / @wabson

My Role at Alfresco At Alfresco since 2005 Started Share Extras project 2010 Joined Integrations Team 2012

Integrations Matter Increasing complexity of IT landscape Rapid adoption of Cloud services Source: http://www.flickr.com/photos/ross/3055802287/

Back in the Day Integrations were PAINFUL Long, iterative dev cycles Transport protocols were XML-based (WSDL, SOAP, etc.) or language-specific (e.g. RMI) How to authenticate?

The Situation Today REST + JSON = Happy Developers? Scriptable APIs Powerful client capabilities

What About Identity? Sharing usernames and passwords is BAD Details may be compromised Passwords may be changed Passwords not always secure Using tokens allows users to delegate authorization to external applications Tokens may be revoked by the user and may expire... But will not change Long alphanumeric values normally used

Enter OAuth An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications. - oauth.net

OAuth Two variants OAuth 1.0(a) OAuth 2.0 Really completely different standards OAuth 2.0 has been controversial

OAuth 1.0a Flow

OAuth 2.0 Flow

Comparing The Two OAuth 1.0 Grant Token must be obtained up-front User tokens consist of access token and secret token (for signing) Every request must be signed as prescribed by SP Access Tokens normally long-lived but cannot be renewed OAuth 2.0 No Grant Tokens Users provided with access token only, no secret token No Signing of requests, relies on SSL Access Tokens are short- lived but Refresh Tokens can be used to renew them

Your Code API The Dream Dashlets Admin Console Doclib Actions etc. Twitter Salesforce Flickr etc.

Introducing Share OAuth Goal: To make RESTful, OAuth-protected APIs natively and easily accessible through client-side JavaScript in Alfresco Share Just like we can easily access the Alfresco repository For OAuth 1.0 and 2.0 services

Challenges How should developers declare endpoints, client IDs and secrets? Dealing with the “OAuth Dance” Where to persist access tokens? How do we sign requests? How do we keep this secure?

Surf Concepts Endpoints give the location of remote resources Connectors are used to fetch those resources Each endpoint must identify a single connector to use Connectors may use a named Authenticator, which in turn may use a Credentials Store

Surf Concepts Illustrated AuthenticatingConnector Credentials Store Endpoint Connector

File spring-webscripts-config.xml

Introducing Share OAuth Goal: To make RESTful, OAuth-protected APIs natively and easily accessible through client-side JavaScript in Alfresco Share Just like we can easily access the Alfresco repository For OAuth 1.0 and 2.0 services

Initial Impl - OAuth 1.0 Connector MyDashlet Extras.OAuthHelper Return Web Script Custom Model Token Web Scripts Service Provider HttpOAuthConnector

Initial Impl - OAuth 1.0 Connector MyDashlet Extras.OAuthHelper Return Web Script Custom Model Token Web Scripts Service Provider HttpOAuthConnector

Repository Tier Custom Model Defines a single aspect with a d:content property Aspect is added to the cm:person object, containing serialized JSON data Data contains OAuth token, secret and other optional values Token Web Scripts Get and set OAuth data on the person object

Web Tier Return Web Script Provider redirects the user back here with a verification code Responsible for calling out to provider to exchange verification code for token Stores access token and secret using token web scripts Redirects user to their original page

Web Tier HttpOAuthConnector Receives requests bound for the service provider, which have been sent via the Share endpoint proxy Access token and secret must be added by the browser via a custom header Secret is used to sign the request but is NOT sent to provider Response is streamed back to the client

Dashlet Request Flow Fetch token from Token Web Scripts If API request successful, display the data If unauthorized, display Connect action If token found, make API request via custom Connector If no token found, display Connect action Fetch token from Token Web Scripts

New Impl - OAuth 2.0 Connector MyDashlet Return Web Script Credentials Store Web Scripts Service Provider Credentials Store HttpOAuth2Connector

Repository Tier OAuth Credentials Store Web Scripts Use the dedicated credentials service (new in Alfresco 4.1) to store tokens on behalf of the user No custom model needed, values are stored encrypted

Web Tier Credentials Store Responsible for loading tokens from the repository (using Credentials Store Web Scripts), storing in the user’s session context and saving new values Return Web Script Uses the Credentials Store to save the access token data (no need to manually call repo web scripts)

Dashlet Request Flow Make API request via custom Connector If API request successful, display the data If unauthorized, display Connect action Make API request via custom Connector

Example Implementations GitHub Dashlet Chatter Dashlet JavaScript Console

More Implementations Twitter Dashlets Flickr Dashlets LinkedIn Dashlet Yammer Dashlet

Future OAuth 1.0 Support via Credentials Store Requires Grant Token support via a custom web script Deprecate client-side Extras.OAuthHelper class Simplify Twitter, LinkedIn, Flickr and Yammer dashlets

More Information http://sharextras.github.io/