Archive

The Dulin Report

Browsable archive from the WordPress export.

Results (25)

The future is bright Mar 30, 2025 Safe and Secure: Seminar on Cybersecurity for Seniors and Their Families Nov 5, 2023 One size does not fit all: neither cloud nor on-prem Apr 10, 2023 Some thoughts on the latest LastPass fiasco Mar 5, 2023 Monolithic repository vs a monolith Aug 23, 2022 Java is no longer relevant May 29, 2022 There is no such thing as one grand unified full-stack programming language May 27, 2022 Application developers like to think their app is the only one Apr 5, 2021 Perhaps something good will come out of the 2020 Coronavirus hysteria Mar 11, 2020 The passwords are no longer a necessity. Let’s find a good alternative. Mar 2, 2020 Returning security back to the user Feb 2, 2019 Using Markov Chain Generator to create Donald Trump's state of union speech Jan 20, 2019 The religion of JavaScript Nov 26, 2018 Quick guide to Internet privacy for families Apr 7, 2018 Nobody wants your app Aug 2, 2017 Rather than innovating Walmart bullies their tech vendors to leave AWS Jun 27, 2017 TDWI 2017, Chicago, IL: Architecting Modern Big Data API Ecosystems May 30, 2017 I tried an Apple Watch for two days and I hated it Mar 30, 2017 Emails, politics, and common sense Jan 14, 2017 Why it makes perfect sense for Dropbox to leave AWS May 7, 2016 JEE in the cloud era: building application servers Apr 22, 2016 OAuth 2.0: the protocol at the center of the universe Jan 1, 2016 IT departments must transform in the face of the cloud revolution Nov 9, 2015 Banking Technology is in Dire Need of Standartization and Openness Sep 28, 2015 Book Review: "Shop Class As Soulcraft" By Matthew B. Crawford Jul 5, 2015

OAuth 2.0: the protocol at the center of the universe

January 1, 2016

I am writing this article on the iPad Mini using the Editorial app. This app is connected to my Dropbox account and automatically synchronizes my work. When I come home I can continue editing on my computer where this file will be waiting for me in my Dropbox folder.

When I take and share photos using Instagram, I am able to cross-post them to my Facebook and Tumblr accounts. IFTTT automatically updates my LinkedIn status when I post on Twitter. When I am reading news using Flipboard I can comment and share on Twitter. Adobe Lightroom CC that I use for my photography hobby allows me to upload and organize photos on Flickr. These interconnected cloud apps use each other’s APIs without knowing my passwords.

OAuth 2.0 is at the heart of all succesful and secure cloud API mash-ups:
The OAuth 2.0 authorization framework enables a third-party
application to obtain limited access to an HTTP service, either on
behalf of a resource owner by orchestrating an approval interaction
between the resource owner and the HTTP service, or by allowing the
third-party application to obtain access on its own behalf.

OAuth 2.0 defines a relationship between the authorization server, the resource server, the resource owner and the third-party application. Aaron Parecki does a great job explaining OAuth 2.0 flow.

You, as the resource owner, own your data stored on the resource server. A third-party app that you use requests authorization from you to access your data on your behalf. It directs you to the authorization server. The authorization server asks you for your credentials and consent to grant the app access to your data. The authorization servers redirects you back to the app. The app now has an authorization code it can use to get a token from the authorization server. Using that token the app can now operate on your data within the constraints you control. In this entire process you did not have to disclose your user name and password to the app.

I own the resources I stored in my Dropbox. I authorized Editorial to operate on my files in Dropbox. Editorial app itself is unaware of my Dropbox credentials. I can revoke its access to my files at any time through Dropbox settings.

As a resource owner you can manage which applications can access your data. Facebook has it under the Apps page in the Settings. Microsoft Office365 lets the domain administrator control what apps users can grant access to. The OAuth 2.0 specification leaves it up to the implementer to decide which third party apps can use the API.

Contrast this with how Mint connects to your bank account. They ask you to enter the credentials you use to access your bank into the app. Mint stores passwords on their servers and then uses them to authenticate into your bank on your behalf. Despite Intuit’s reassurances, this is a security breach waiting to happen. The reason for that is that each bank has proprietary API. A team of Mint engineers must come together to update integration scripts each time a bank updates their API:
When a financial institution updates their system, our engineers have to rewrite the script on our end to match so that we can continue supporting them. Typically, they are notified when this is going to happen and can get it updated pretty quickly. However, please open a ticket by filling out our Contact Mint form to make sure this is on their radar and they can get the script updated as soon as possible.

Standard API can become a revenue driver if done right. George Collins and David Sisk, write for Deloitte University Press:
Application programming interfaces (APIs) have been elevated from a development technique to a business model driver and boardroom consideration. An organization’s core assets can be reused, shared, and monetized through APIs that can extend the reach of existing services or provide new revenue streams. APIs should be managed like a product — one built on top of a potentially complex technical footprint that includes legacy and third-party systems and data.

Public APIs are becoming a crucial business asset. A strong API strategy depends on openness and standardization. A support for the OAuth 2.0 specification is the first step towards a successful and secure API model.




This article was originally published at my "Cloud Power" blog with Computerworld on Nov 24, 2015