2012 confoo: defining user identity

42
Defining User Identity True Identity VS Anonymity Jonathan LeBlanc Developer Evangelist: X.commerce Email: [email protected] Twitter: @jcleblanc

Upload: jonathan-leblanc

Post on 21-May-2015

1.568 views

Category:

Technology


5 download

DESCRIPTION

March 2012 talk at Confoo (confoo.ca) on defining user identity.

TRANSCRIPT

Page 1: 2012 Confoo: Defining User Identity

Defining User Identity

True Identity VS Anonymity

Jonathan LeBlancDeveloper Evangelist: X.commerce

Email: [email protected]: @jcleblanc

Page 2: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

The Foundations of Human Identity

Tribalism and Social Grouping

The Big Bag of Social Identity Fail

Experimental Identity Methods

What We’re Going to Cover

Page 3: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

The Foundations of Human Identity

Tribalism and Social Grouping

The Big Bag of Social Identity Fail

Experimental Identity Methods

What We’re Going to Cover

Page 4: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Human Identity: User Types

Anonymous Users Real Identity Login

Page 5: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

OAuth (1.0a + 2.0)PayPal Access, Facebook, Twitter

OpenID (…and the upcoming OpenID Connect)PayPal Access, Google, Yahoo!

BrowserIDMozilla

Human Identity: Open Identity Programming

Page 6: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Human Identity: Anonymous Users

Page 7: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

There are a few common options

Human Identity: Tracking Anonymous Users

Tracking Cookie Local Storage

Page 8: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

• On each page visited, track the URL

• HTML5 Local Storage as primary storage

• Cookies as secondary storage

Human Identity: Tracking Anonymous Users

Program Overview

Page 9: 2012 Confoo: Defining User Identity

Tracking Anonymous Users with Local Storage

var storeName = "visited";if (typeof(localStorage) == 'undefined' ) { //Local Storage Not Available} else { try { var sites = localStorage.getItem(storeName); sites = (sites === null) ? window.location : sites + window.location; localStorage.setItem(storeName, sites + "|"); } catch (e) { if (e == QUOTA_EXCEEDED_ERR) { //quota exceeded } }}

Page 10: 2012 Confoo: Defining User Identity

Tracking Anonymous Users with Cookies

function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' '){ c = c.substring(1, c.length) }; if (c.indexOf(nameEQ) == 0){ return c.substring(nameEQ.length, c.length); } } return null;}

Page 11: 2012 Confoo: Defining User Identity

var storeName = "visited";if (typeof(localStorage) == "undefined" ) { var cookieVal = readCookie(storeName); var value = ((cookieVal === null) ? window.location : cookieVal + window.location); var days = 1; var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); var expires = "; expires=" + date.toGMTString(); document.cookie = storeName + "=" + value + "|" + expires + "; path=/";} else { //Use Local Storage}

Tracking Anonymous Users with Cookies

Page 12: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

• Remove oldest results when storage fills

• Build categorization mapping prior to storage to save space (more on this later)

Human Identity: Tracking Anonymous Users

Next Steps / Improvements

Page 13: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Human Identity: Real Identity Users

Page 14: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Human Identity: Real Identity Sources

Social (perceived) Concrete (true)

Sources of Real Identity

Page 15: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Human Identity: BrowserID

Page 16: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

BrowserID Source<script src="https://browserid.org/include.js" type="text/javascript"></script>

JQuery Source<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>

Human Identity: BrowserID

Page 17: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Human Identity: BrowserID

navigator.id.get(function(assertion) { if (assertion) { $.ajax({ url: 'https://browserid.org/verify', type: 'POST', data: 'assertion='+assertion+'&audience=jcleblanc.com', success: function(res) { console.log(res); } });});

Page 18: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

{ audience: "jcleblanc.com", email: "[email protected]", expires: 1320081400987, issuer: "browserid.org", status: "okay"}

Human Identity: BrowserID JSON Results

Page 19: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

The Foundations of Human Identity

Tribalism and Social Grouping

The Big Bag of Social Identity Fail

Experimental Identity Methods

What We’re Going to Cover

Page 20: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Social Grouping: It’s Not A New Thing…

Page 21: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Tribalism started as a way to keep us safe

…it has lead to some horrible parts of history

but it is also a foundation of many of our social relationships

Social Grouping: Foundation in Tribalism

Page 22: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Social Grouping: The Real Life Social Graph

Page 23: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Social Grouping: The Online Social Graph

Page 24: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Social Grouping: Group Types

Follower Type

Connection Type

Group Type

Page 25: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Social Grouping: Data Miners are Rock Stars

Page 26: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

• Use all URLs from the previous program.

• Obtain content category for page.

• Categorize user interest.

Social Grouping: Group Programming Primer

Program Overview

Page 27: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Social Grouping: Group Programming Primer

Step 1: Obtain Website Content

Page 28: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Social Grouping: Group Programming Primer

Step 2: Perform Keyword Density Search

Page 29: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Social Grouping: Group Programming Primer

Step 3: Weight Keywords

Page 30: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

The Foundations of Human Identity

Tribalism and Social Grouping

The Big Bag of Social Identity Fail

Experimental Identity Methods

What We’re Going to Cover

Page 31: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

“My privacy concerns are not trite. They are linked to my actual physical safety” --Harriet Jacobs (Gizmodo)

Social Identity Fail: Personal Safety

When Social Discovery Impacts Personal Safety

Page 32: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

“Path Uploads Your Entire iPhone Contact List By Default” --Mark Hachman (PCMag)

Social Identity Fail: Privacy Concerns

When Making Things Easy Impairs Privacy

Page 33: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

“How Target Figured Out A Teen Girl Was Pregnant Before Her Father Did” --Kashmir Hill (Forbes)

Social Identity Fail: The Fine Line

The Fine Line Between Insightful and Creepy

Page 34: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

The Foundations of Human Identity

Tribalism and Social Grouping

The Big Bag of Social Identity Fail

Experimental Identity Methods

What We’re Going to Cover

Page 35: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Experimental Identity: WebFinger

Page 36: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Step 1: Perform Discovery

curl https://gmail.com/.well-known/host-meta

Experimental Identity: WebFinger

Page 37: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Experimental Identity: WebFinger

<XRD xmlns='http://docs.oasis.open.org/ns/xri/xrd-1.0' xmlns:hm='http://host-meta.net/xrd/1.0'> <hm:Host xmlns='http://host-meta.net/xrd/1.0'>gmail.com </hm:Host> <Link rel='lrdd' template='http://www.google.com/s2/webfinger/?q={uri}'> <Title>Resource Descriptor</Title> </Link></XRD>

Page 38: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Step 2: Collect User Data

curl http://www.google.com/s2/webfinger/[email protected]

Experimental Identity: WebFinger

Page 39: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

User Profilehttp://www.google.com/profiles/nakedtechnologist

Portable Contactshttp://www-opensocial.googleusercontent.com/api/people/118167121283215553793/

Experimental Identity: WebFinger

Page 40: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

profileUrlidthumbnail urlurlsphotos

Experimental Identity: WebFinger

name formatted family name given name display name

Page 41: 2012 Confoo: Defining User Identity

X.Commerce (eBay Inc.)http://www.x.com | @x_commerce

Identity is more than just a login

Authentication is just the first step

Find the tool that:– Has the raw data that you need– Works with your business

Identity Programming Core Concepts

Page 42: 2012 Confoo: Defining User Identity

Thanks! Any Questions?

Jonathan LeBlancEmail: [email protected]

Twitter: @jcleblancGithub: https://github.com/jcleblanc

http://slidesha.re/confoo_identity2