SlideShare a Scribd company logo
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




                VZ-ID
                The technical background
                Bastian Hofmann
                VZnet Netzwerke Ltd.
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Agenda
 – Sharing
    • OExchange
    • OpenGraph
 – Login
    • OpenID
    • OAuth	
  &	
  OAuth	
  2
    • OpenID	
  Connect
 – VZ-­‐JavaScript	
  Library
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Sharing
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




OExchange
• Common	
  API	
  for	
  publishing	
  sth.	
  into	
  social	
  
  networks
 http://www.example.com/share.php?url={URI}&title={title
 for the content}&description={short description of the
 content}&ctype=flash&swfurl={SWF URI}&height={preferred
 SWF height}&width={preferred swf width}&screenshot=
 {screenshot URI}




  hQp://www.oexchange.org/
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Discovery	
  over	
  XRD
 <?xml version='1.0' encoding='UTF-8'?>
 <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
     <Subject>http://www.example.com/linkeater</Subject>
     <Property
        type="http://www.oexchange.org/spec/0.8/prop/vendor">
         Examples Inc.</Property>
     <Property
        type="http://www.oexchange.org/spec/0.8/prop/title">
         A Link-Accepting Service</Property>
     <Link
        rel= "icon" href="http://www.example.com/favicon.ico"
        type="image/vnd.microsoft.icon" />
     <Link
        rel= "http://www.oexchange.org/spec/0.8/rel/offer"
        href="http://www.example.com/linkeater/offer.php"
        type="text/html" />
 </XRD>
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




OpenGraph
Retrieves	
  meta	
  data	
  through	
  meta	
  tags	
  in	
  shared	
  
page
<meta property="og:title" content="title" />
<meta property="og:description" content="description" />
<meta property="og:site_name" content="your site name" />
<meta property="og:image" content="http://example.com/
thumbnail.jpg" />




 hQp://opengraphprotocol.org/
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Sharing	
  examples	
  @VZ

http://platform-redirect.vz-modules.net/r/Link/Share/?url=http%3A
%2F%2Fwww.example.com&description=descripton&title=title


http://www.studivz.net/Link/Share/?url=http%3A%2F
%2Fwww.example.com&description=descripton&title=title




                                                         hQp://developer.studivz.net/wiki/index.php/Sharing
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Login
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Iden@@es	
  in	
  real	
  life
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Do	
  you	
  have	
  really	
  only	
  one	
  
iden@ty?
Lothar	
  Krappmann:

-­‐	
  IdenVty	
  is	
  conveyed	
  by	
  communicaVon

-­‐	
  IdenVty	
  is	
  not	
  fixed	
  but	
  recreated	
  by	
  every
	
  	
  communicaVon	
  with	
  your	
  fellows

-­‐	
  ExpectaVons	
  of	
  different	
  people	
  result	
  in
	
  	
  different	
  idenVVes
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Example:




Paul	
  Adams
hQp://www.slideshare.net/padday/the-­‐real-­‐life-­‐social-­‐network-­‐v2
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Iden@@es	
  in	
  the	
  Web
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Register,	
  Register,	
  Register,	
  ...
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Single	
  Sign	
  on




                                                                                ul_Marga
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




MicrosoK	
  Passport	
  /	
  Live	
  ID
• Windows	
  Live	
  ID
• Launched	
  1999	
  as	
  .net	
  Passport
• Used	
  mainly	
  for	
  Microso]	
  
  Services	
  but	
  not	
  much	
  outside
• OpenID	
  Provider	
  since	
  2008
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Facebook	
  Connect
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




TwiSer	
  @Anywhere
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




And	
  there	
  are	
  much,	
  much	
  more
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Nascar	
  problem




                                                                               Vaguely Artistic
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




How	
  to	
  fix	
  it?




                                                                                 Moff
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Aggrega@on:	
  Janrain




   hQp://www.janrain.com/
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




OpenID
• Open	
  decentralized	
  user	
  authenVcaVon




  hQp://openid.net/
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Connec@on	
  Flow
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Authen@ca@on	
  vs	
  Authoriza@on
 Who	
  is	
  the	
  user?

                        Is	
  this	
  really	
  user	
  X?



                                                                      VS
                                                                              Is	
  X	
  allowed	
  to	
  do	
  something?


                                                           Does	
  X	
  have	
  the	
  permission?


            Client sites want more than just a
            unique identifier (Social Graph)
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




But	
  there	
  are	
  Spec	
  Extensions




                                                                                decafinata
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




OpenID	
  +	
  OAuth
• Combines	
  OpenID	
  AuthenVcaVon	
  and	
  OAuth	
  
  authorizaVon

                 openid.ns.oauth=http://specs.openid.net/extensions/oauth/1.0
                 &openid.oauth.consumer=123456




                 openid.ns.oauth=http://specs.openid.net/extensions/oauth/1.0
                 &openid.oauth.request_token=7890
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




                 OAuth	
  1.0a	
  Flow
                             +----------+                                  +---------------+
                             |          -+----(B)-- Request Token -------->|               |
                             | End-user |                                  | Authorization |
                             |     at    |<---(C)-- User authenticates --->|     Server    |
                             | Browser |                                   |               |
                             |          -+----(D)-- Verifier -------------<|               |
                             +-|----|---+                                  +---------------+
                                |     |                                        ^      v
                               (B) (D)                                         |      |
                                |     |                                        |      |
                                ^     v                                        |      |
                             +---------+                                       |      |
                             |          |>---(A)-- Redirect URL ---------------|      |
                             |    Web   |<---(A)-- Request Token + Secret -----|      |
                             | Client |>---(E)-- Request Token, Verifier ----'        |
                             |          |<---(E)-- Access Token + Secret -------------'
                             +---------+

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Every   Request: Client Credentials, Nonce, Timestamp, Signature



                            hQp://oauth.net/
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Failures	
  of	
  OpenID	
  2.0
• Complex	
  to	
  implement

• No	
  markeVng
    – Do	
  you	
  have	
  an	
  OpenID?
    – What	
  is	
  it?


• URL	
  as	
  idenVfier	
  =>	
  Bad	
  User	
  Experience
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




OpenID	
  Connect
• Goals:
    – Easier	
  to	
  implement
    – More	
  simple	
  specificaVon
    – BeQer	
  user	
  experience
• =>	
  wider	
  adpVon
• Built	
  on	
  top	
  of	
  OAuth	
  2.0
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




What‘s	
  wrong	
  with	
  OAuth?
• Does	
  not	
  work	
  well	
  with	
  non	
  web	
  or	
  JavaScript	
  
  based	
  clients

• The	
  „Invalid	
  Signature“	
  Problem


• Complicated	
  Flow,	
  many	
  requests
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




What‘s	
  new	
  in	
  OAuth2?	
                                                 (DraK	
  10)




• Different	
  client	
  profiles
• No	
  signatures
• No	
  Token	
  Secrets
• Cookie-­‐like	
  Bearer	
  Token
• Mandatory	
  TSL/SSL
• No	
  Request	
  Tokens
• Much	
  more	
  flexible	
  regarding	
  extensions

                                                                                 hQp://tools.iej.org/html/dra]-­‐iej-­‐oauth-­‐v2
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Web-­‐Server	
  Profile
 +----------+            Client Identifier       +---------------+
 |          -+----(A)--- & Redirect URI ------>|                 |
 | End-user |                                    | Authorization |
 |     at     |<---(B)-- User authenticates --->|      Server    |
 | Browser |                                     |               |
 |          -+----(C)-- Authorization Code ---<|                 |
 +-|----|---+                                    +---------------+
    |     |                                          ^      v
   (A) (C)                                           |      |
    |     |                                          |      |
    ^     v                                          |      |
 +---------+                                         |      |
 |          |>---(D)-- Client Credentials, --------'        |
 |    Web   |           Authorization Code,                 |
 | Client |               & Redirect URI                    |
 |          |                                               |
 |          |<---(E)----- Access Token -------------------'
 +---------+         (w/ Optional Refresh Token)
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




   User-­‐Agent	
  Profile
       +----------+          Client Identifier     +----------------+
       |          |>---(A)-- & Redirection URI --->|                |
       |          |                                |                |
End <--+ - - - +----(B)-- User authenticates -->| Authorization |
User   |          |                                |     Server     |
       |          |<---(C)--- Redirect URI -------<|                |
       | Client |           with Access Token      |                |
       |    in    |            in Fragment         +----------------+
       | Browser |
       |          |                                +----------------+
       |          |>---(D)--- Redirect URI ------->|                |
       |          |         without Fragment       |   Web Server   |
       |          |                                |   with Client |
       |    (F)   |<---(E)--- Web Page with ------<|    Resource    |
       | Access |                Script            |                |
       |   Token |                                 +----------------+
       +----------+
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




What	
  happend	
  to	
  signatures?
• Ongoing	
  controvers	
  discussion

• Bearer	
  Tokens	
  are	
  fine	
  over	
  secure	
  connecVon


• Vulnerable	
  if	
  discovery	
  is	
  introduced

• Or	
  TSL/SSL	
  is	
  not	
  possible
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Scopes
• OpVonal	
  parameter	
  for	
  provider	
  specific	
  
  implementaVons

• For	
  example
   – AddiVonal	
  return	
  values
   – Access	
  Control
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




OpenID	
  Connect?
• Scope:	
  „openid“

• With	
  access	
  token	
  addiVonal	
  values	
  are	
  returned
   – UserID:	
  URL	
  to	
  Portable	
  Contacts	
  endpoint
   – Signature
   – Timestamp


   hQp://openidconnect.com/
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




OpenID	
  Connect	
  Discovery
• Get	
  IdenVfier	
  of	
  user

• Call	
  /.well-­‐know/host-­‐meta	
  file	
  at	
  the	
  domain	
  of	
  
  the	
  user‘s	
  provider

• Look	
  for	
  a	
  link	
  poinVng	
  to	
  the	
  OpenID	
  Connect	
  
  endpoints	
  in	
  the	
  returned	
  LRDD
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




OpenID	
  Connect	
  @VZ
• Available	
  now

• But	
  without	
  the	
  discovery	
  part
   – No	
  discovering	
  clients
   – No	
  discoverable	
  enVVes
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




VZ-­‐JavaScript	
  Library
<script src="http://static.pe.studivz.net/Js/id/v3/library.js"
data-authority="platform-redirect.vz-modules.net/r"
data-authorityssl="platform-redirect.vz-modules.net/r"
type="text/javascript"></script>

<script type="vz/share">
   id: shareButton
   title: title of your site
   description : a description
</script>




                                                     hQp://developer.studivz.net/wiki/index.php/JS-­‐Library
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Login	
  widget
<script type="text/javascript">
function callbackMethod(c) {
  if (c.error) {
    return;
  }
  var url = c.user_id;
  vz.id.login.callApi(url, function(data) {
    console.log(data.entry.displayName);
  });
}
</script>
<script type="vz/login">
   client_id : 1234567890abcdef
   redirect_uri : http://example.com/callback.html
   callback : callbackMethod
   fields : name,emails
</script>              hQp://developer.studivz.net/wiki/index.php/JS-­‐Library
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




Callback.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//
EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
  </head>
  <body>
      <script type="text/javascript">
        opener.vz.id.authStorage.setAuthParameterHash
(location.hash.substr(1));
        window.close();
      </script>
  </body>
</html>
VZnet	
  Netzwerke	
  Ltd.	
  -­‐	
  Tuesday,	
  December	
  7,	
  2010




                                            Thank	
  you


hQp://twiQer.com/BasVanHofmann
hQp://studivz.net/basVan
hQp://slideshare.net/bashofmann
bhofmann@vz.net

hQp://developer.studivz.net

More Related Content

PDF
Distributed Identities with OpenID
PDF
Distributed Social Networking
PDF
Javascript Object Signing & Encryption
PPT
Rest full
PPT
PPTX
OExchange Technical Intro
PDF
Clearspring Widgetsphere
PPT
Web Widgets Talk @ RefreshDC, Sep 2007
Distributed Identities with OpenID
Distributed Social Networking
Javascript Object Signing & Encryption
Rest full
OExchange Technical Intro
Clearspring Widgetsphere
Web Widgets Talk @ RefreshDC, Sep 2007

Similar to Technical Background of VZ-ID (20)

PDF
OpenSocial - Past, Present, Future
PDF
Distributed Identities with OpenID
PDF
Distributed Identities with OpenID
PDF
How to create social apps for millions of users
PPTX
Making Sense of API Access Control
PDF
Gluecon oauth-03
PDF
OAuth 1.0
PPTX
OAuth - Don’t Throw the Baby Out with the Bathwater
PPT
UserCentric Identity based Service Invocation
PDF
When and Why Would I use Oauth2?
PDF
Crossing the Boundaries of Web Applications with OpenSocial
PPTX
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control - W...
PDF
OAuth 2.0 Updates #technight
PPTX
Buiding application for social networks
PDF
Acronym Soup
PDF
CIS14: Working with OAuth and OpenID Connect
PPTX
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control
PPT
Oauth tutorial
PDF
Draft Hammer Oauth 10
KEY
OpenID vs OAuth - Identity on the Web
OpenSocial - Past, Present, Future
Distributed Identities with OpenID
Distributed Identities with OpenID
How to create social apps for millions of users
Making Sense of API Access Control
Gluecon oauth-03
OAuth 1.0
OAuth - Don’t Throw the Baby Out with the Bathwater
UserCentric Identity based Service Invocation
When and Why Would I use Oauth2?
Crossing the Boundaries of Web Applications with OpenSocial
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control - W...
OAuth 2.0 Updates #technight
Buiding application for social networks
Acronym Soup
CIS14: Working with OAuth and OpenID Connect
OAuth-as-a-service using ASP.NET Web API and Windows Azure Access Control
Oauth tutorial
Draft Hammer Oauth 10
OpenID vs OAuth - Identity on the Web
Ad

More from Bastian Hofmann (19)

PDF
Introduction to rg\injection
PDF
IGNITE OpenSocial 2.0 - Viva La OpenAppRevolution!
PDF
How to create OpenSocial Apps in 45 minutes
PDF
Crossing the Boundaries of Web Applications with OpenSocial
PDF
The Identity Problem of the Web and how to solve it
PDF
Mashing up JavaScript
PDF
Crossing the Boundaries of Web Applications with OpenSocial
PDF
Opening up the Social Web - Standards that are bridging the Islands
PDF
Mashing up JavaScript – Advanced Techniques for modern Web Apps
PDF
Mashing up JavaScript
PDF
Creating social games for millions of users
KEY
Advanced Capabilities of OpenSocial Apps
PDF
Creating OpenSocial Apps for millions of users
PDF
How to make your social games successfull
PDF
Opening up the Social Web - Standards that are bridging the Islands
PDF
Creating OpenSocial Apps
PDF
OpenSocial in der Praxis
PDF
OpenSocial Done Right
PDF
Social apps done right
Introduction to rg\injection
IGNITE OpenSocial 2.0 - Viva La OpenAppRevolution!
How to create OpenSocial Apps in 45 minutes
Crossing the Boundaries of Web Applications with OpenSocial
The Identity Problem of the Web and how to solve it
Mashing up JavaScript
Crossing the Boundaries of Web Applications with OpenSocial
Opening up the Social Web - Standards that are bridging the Islands
Mashing up JavaScript – Advanced Techniques for modern Web Apps
Mashing up JavaScript
Creating social games for millions of users
Advanced Capabilities of OpenSocial Apps
Creating OpenSocial Apps for millions of users
How to make your social games successfull
Opening up the Social Web - Standards that are bridging the Islands
Creating OpenSocial Apps
OpenSocial in der Praxis
OpenSocial Done Right
Social apps done right
Ad

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PDF
cuic standard and advanced reporting.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Cloud computing and distributed systems.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Electronic commerce courselecture one. Pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
sap open course for s4hana steps from ECC to s4
cuic standard and advanced reporting.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Machine learning based COVID-19 study performance prediction
Advanced methodologies resolving dimensionality complications for autism neur...
Cloud computing and distributed systems.
Chapter 3 Spatial Domain Image Processing.pdf
A Presentation on Artificial Intelligence
Electronic commerce courselecture one. Pdf
MIND Revenue Release Quarter 2 2025 Press Release
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Per capita expenditure prediction using model stacking based on satellite ima...
Assigned Numbers - 2025 - Bluetooth® Document
NewMind AI Weekly Chronicles - August'25-Week II
Mobile App Security Testing_ A Comprehensive Guide.pdf
Programs and apps: productivity, graphics, security and other tools
gpt5_lecture_notes_comprehensive_20250812015547.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Technical Background of VZ-ID

  • 1. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 VZ-ID The technical background Bastian Hofmann VZnet Netzwerke Ltd.
  • 2. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Agenda – Sharing • OExchange • OpenGraph – Login • OpenID • OAuth  &  OAuth  2 • OpenID  Connect – VZ-­‐JavaScript  Library
  • 3. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Sharing
  • 4. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 OExchange • Common  API  for  publishing  sth.  into  social   networks http://www.example.com/share.php?url={URI}&title={title for the content}&description={short description of the content}&ctype=flash&swfurl={SWF URI}&height={preferred SWF height}&width={preferred swf width}&screenshot= {screenshot URI} hQp://www.oexchange.org/
  • 5. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Discovery  over  XRD <?xml version='1.0' encoding='UTF-8'?> <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">     <Subject>http://www.example.com/linkeater</Subject>     <Property        type="http://www.oexchange.org/spec/0.8/prop/vendor">         Examples Inc.</Property>     <Property        type="http://www.oexchange.org/spec/0.8/prop/title">         A Link-Accepting Service</Property>     <Link        rel= "icon" href="http://www.example.com/favicon.ico"        type="image/vnd.microsoft.icon" />     <Link        rel= "http://www.oexchange.org/spec/0.8/rel/offer"        href="http://www.example.com/linkeater/offer.php"        type="text/html" /> </XRD>
  • 6. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 OpenGraph Retrieves  meta  data  through  meta  tags  in  shared   page <meta property="og:title" content="title" /> <meta property="og:description" content="description" /> <meta property="og:site_name" content="your site name" /> <meta property="og:image" content="http://example.com/ thumbnail.jpg" /> hQp://opengraphprotocol.org/
  • 7. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Sharing  examples  @VZ http://platform-redirect.vz-modules.net/r/Link/Share/?url=http%3A %2F%2Fwww.example.com&description=descripton&title=title http://www.studivz.net/Link/Share/?url=http%3A%2F %2Fwww.example.com&description=descripton&title=title hQp://developer.studivz.net/wiki/index.php/Sharing
  • 8. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Login
  • 9. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Iden@@es  in  real  life
  • 10. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Do  you  have  really  only  one   iden@ty? Lothar  Krappmann: -­‐  IdenVty  is  conveyed  by  communicaVon -­‐  IdenVty  is  not  fixed  but  recreated  by  every    communicaVon  with  your  fellows -­‐  ExpectaVons  of  different  people  result  in    different  idenVVes
  • 11. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Example: Paul  Adams hQp://www.slideshare.net/padday/the-­‐real-­‐life-­‐social-­‐network-­‐v2
  • 12. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Iden@@es  in  the  Web
  • 13. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Register,  Register,  Register,  ...
  • 14. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Single  Sign  on ul_Marga
  • 15. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 MicrosoK  Passport  /  Live  ID • Windows  Live  ID • Launched  1999  as  .net  Passport • Used  mainly  for  Microso]   Services  but  not  much  outside • OpenID  Provider  since  2008
  • 16. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Facebook  Connect
  • 17. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 TwiSer  @Anywhere
  • 18. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 And  there  are  much,  much  more
  • 19. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Nascar  problem Vaguely Artistic
  • 20. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 How  to  fix  it? Moff
  • 21. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Aggrega@on:  Janrain hQp://www.janrain.com/
  • 22. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 OpenID • Open  decentralized  user  authenVcaVon hQp://openid.net/
  • 23. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010
  • 24. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Connec@on  Flow
  • 25. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Authen@ca@on  vs  Authoriza@on Who  is  the  user? Is  this  really  user  X? VS Is  X  allowed  to  do  something? Does  X  have  the  permission? Client sites want more than just a unique identifier (Social Graph)
  • 26. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 But  there  are  Spec  Extensions decafinata
  • 27. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 OpenID  +  OAuth • Combines  OpenID  AuthenVcaVon  and  OAuth   authorizaVon openid.ns.oauth=http://specs.openid.net/extensions/oauth/1.0 &openid.oauth.consumer=123456 openid.ns.oauth=http://specs.openid.net/extensions/oauth/1.0 &openid.oauth.request_token=7890
  • 28. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 OAuth  1.0a  Flow +----------+ +---------------+ | -+----(B)-- Request Token -------->| | | End-user | | Authorization | | at |<---(C)-- User authenticates --->| Server | | Browser | | | | -+----(D)-- Verifier -------------<| | +-|----|---+ +---------------+ | | ^ v (B) (D) | | | | | | ^ v | | +---------+ | | | |>---(A)-- Redirect URL ---------------| | | Web |<---(A)-- Request Token + Secret -----| | | Client |>---(E)-- Request Token, Verifier ----' | | |<---(E)-- Access Token + Secret -------------' +---------+                    Every Request: Client Credentials, Nonce, Timestamp, Signature hQp://oauth.net/
  • 29. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Failures  of  OpenID  2.0 • Complex  to  implement • No  markeVng – Do  you  have  an  OpenID? – What  is  it? • URL  as  idenVfier  =>  Bad  User  Experience
  • 30. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 OpenID  Connect • Goals: – Easier  to  implement – More  simple  specificaVon – BeQer  user  experience • =>  wider  adpVon • Built  on  top  of  OAuth  2.0
  • 31. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 What‘s  wrong  with  OAuth? • Does  not  work  well  with  non  web  or  JavaScript   based  clients • The  „Invalid  Signature“  Problem • Complicated  Flow,  many  requests
  • 32. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 What‘s  new  in  OAuth2?   (DraK  10) • Different  client  profiles • No  signatures • No  Token  Secrets • Cookie-­‐like  Bearer  Token • Mandatory  TSL/SSL • No  Request  Tokens • Much  more  flexible  regarding  extensions hQp://tools.iej.org/html/dra]-­‐iej-­‐oauth-­‐v2
  • 33. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Web-­‐Server  Profile +----------+ Client Identifier +---------------+ | -+----(A)--- & Redirect URI ------>| | | End-user | | Authorization | | at |<---(B)-- User authenticates --->| Server | | Browser | | | | -+----(C)-- Authorization Code ---<| | +-|----|---+ +---------------+ | | ^ v (A) (C) | | | | | | ^ v | | +---------+ | | | |>---(D)-- Client Credentials, --------' | | Web | Authorization Code, | | Client | & Redirect URI | | | | | |<---(E)----- Access Token -------------------' +---------+ (w/ Optional Refresh Token)
  • 34. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 User-­‐Agent  Profile +----------+ Client Identifier +----------------+ | |>---(A)-- & Redirection URI --->| | | | | | End <--+ - - - +----(B)-- User authenticates -->| Authorization | User | | | Server | | |<---(C)--- Redirect URI -------<| | | Client | with Access Token | | | in | in Fragment +----------------+ | Browser | | | +----------------+ | |>---(D)--- Redirect URI ------->| | | | without Fragment | Web Server | | | | with Client | | (F) |<---(E)--- Web Page with ------<| Resource | | Access | Script | | | Token | +----------------+ +----------+
  • 35. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 What  happend  to  signatures? • Ongoing  controvers  discussion • Bearer  Tokens  are  fine  over  secure  connecVon • Vulnerable  if  discovery  is  introduced • Or  TSL/SSL  is  not  possible
  • 36. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Scopes • OpVonal  parameter  for  provider  specific   implementaVons • For  example – AddiVonal  return  values – Access  Control
  • 37. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 OpenID  Connect? • Scope:  „openid“ • With  access  token  addiVonal  values  are  returned – UserID:  URL  to  Portable  Contacts  endpoint – Signature – Timestamp hQp://openidconnect.com/
  • 38. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 OpenID  Connect  Discovery • Get  IdenVfier  of  user • Call  /.well-­‐know/host-­‐meta  file  at  the  domain  of   the  user‘s  provider • Look  for  a  link  poinVng  to  the  OpenID  Connect   endpoints  in  the  returned  LRDD
  • 39. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 OpenID  Connect  @VZ • Available  now • But  without  the  discovery  part – No  discovering  clients – No  discoverable  enVVes
  • 40. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 VZ-­‐JavaScript  Library <script src="http://static.pe.studivz.net/Js/id/v3/library.js" data-authority="platform-redirect.vz-modules.net/r" data-authorityssl="platform-redirect.vz-modules.net/r" type="text/javascript"></script> <script type="vz/share">    id: shareButton    title: title of your site    description : a description </script> hQp://developer.studivz.net/wiki/index.php/JS-­‐Library
  • 41. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Login  widget <script type="text/javascript"> function callbackMethod(c) {   if (c.error) {     return;   }   var url = c.user_id;   vz.id.login.callApi(url, function(data) {     console.log(data.entry.displayName);   }); } </script> <script type="vz/login">    client_id : 1234567890abcdef    redirect_uri : http://example.com/callback.html    callback : callbackMethod    fields : name,emails </script> hQp://developer.studivz.net/wiki/index.php/JS-­‐Library
  • 42. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Callback.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional// EN"> <html>   <head>     <title></title>     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   </head>   <body>       <script type="text/javascript">         opener.vz.id.authStorage.setAuthParameterHash (location.hash.substr(1));         window.close();       </script>   </body> </html>
  • 43. VZnet  Netzwerke  Ltd.  -­‐  Tuesday,  December  7,  2010 Thank  you hQp://twiQer.com/BasVanHofmann hQp://studivz.net/basVan hQp://slideshare.net/bashofmann bhofmann@vz.net hQp://developer.studivz.net