SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
Auth
Presentation to Singapore Ruby Brigade
at SMU, School of Information System
29 November 2007




Chew Choon Keat
sharedcopy.com

http://flickr.com/photos/lachlanhardy/1400641336/
Why OAuth
• Web 2.0
• APIs
• Mashups
Giving away access
• Mint
  “an impressive personal finance application”
• Mint Terms of Service
http://flickr.com/photos/brianoberkirch/1092087510/
Giving away access

• quot;Giving your email account
  password to a social network site so
  they can look up your friends is the same
  thing as going to dinner and giving your
  ATM card and PIN code to the
  waiter when it’s time to pay.quot;
  - oauth.net
Alternatives: Hidden Public

• Random URLs
• Security by obscurity
Alternatives: Proprietary

• Google AuthSub
• AOL OpenAuth
• Yahoo BBAuth
• Upcoming API
• Flickr API
• Amazon Web Services API
What is OAuth
• “An open protocol to allow secure API
  authentication in a simple and standard
  method from desktop and web
  applications.”
OAuth Flow
• Registration (server to server)
• Request Token
• Authorization
• Access Token


           http://flickr.com/photos/petromyzon/26252991/
End User




http://flickr.com/photos/andreasnilsson1976/433173596/
Protected Resource




http://flickr.com/photos/annettepedrosian/2071523294/
Service Provider




http://flickr.com/photos/spectrasensors/322545693/
Consumer




http://flickr.com/photos/infidelic/147930477/
Tokens




http://flickr.com/photos/kt/364996966/
Protected Resources      Consumer




Service Provider

              End User
Consumer Registration
                                                                            Consumer
               Protected Resources
                                             Service Provider




                                                                “Let’s work together
                                                                here are my details”

                                            End User




http://flickr.com/photos/marcroberts/1484118790/
Consumer Registration
                       Service Provider
Protected Resources
                                          Consumer




                      End User
Consumer Registration
                                          Service Provider
               Protected Resources
                                                             Consumer




             “These are our secrets. Use it
              every time you talk to me”


                                         End User




http://flickr.com/photos/9458565@N07/760773574/
Consumer Registration
                       Service Provider
Protected Resources
                                          Consumer




                      End User
Use Case
                                                     Consumer
Protected Resources
                      Service Provider




                                  End User
                                   “Print my pictures from SP”
Get Request Tokens
                                                    Consumer
Protected Resources
                      Service Provider




                                         “I have someone
                                         who needs you”


                      End User
Get Request Tokens
                                          Service Provider
               Protected Resources
                                                             Consumer




                        “Pass this to him, and
                          bring him to me”


                                         End User




http://flickr.com/photos/9458565@N07/760773574/
Get Authorization
                                                      Consumer
Protected Resources
                      Service Provider




                                              “Go to there.
                                             Bring this along”
                                  End User
Get Authorization
                      Service Provider
Protected Resources                      Consumer




“Hi, remember me?”
                             End User
Get Authorization
                        Service Provider
  Protected Resources                      Consumer




    “Silver coin! You need
Consumer to do things for you?”

                            End User
Get Authorization
                      Service Provider
Protected Resources                      Consumer




      “Yes”
                              End User
Get Authorization
                       Service Provider
 Protected Resources                      Consumer




“Your wish is my command. Return there”


                           End User
Get Access Token
Protected Resources                                Consumer
                      Service Provider




                                  End User
                                     “Its done!”
Get Access Token
                                                     Consumer
Protected Resources
                      Service Provider




                                         “He said ok? Gimme the keys”


                      End User
Get Access Token
                                             Service Provider
               Protected Resources
                                                                Consumer




   “Ignore that silly silver coin...
   Use this from now and I will
      always treat you as he”

                                            End User




http://flickr.com/photos/azuric/150520121/
Get Access Token
                                         Consumer
Protected Resources
                      Service Provider




                      End User
Use Access Token
                                                      Consumer
Protected Resources
                      Service Provider




                                         “Gimme MY pictures”

                      End User
Using Access Token
                       Service Provider
Protected Resources
                                          Consumer




                      End User
Using Access Token
• Whenever Consumer calls SP’s API
 • GET /photos.xml
 • bring consumer key, access token
 • sign with consumer secret & access
    secret
• Service Provider verifies signature
 • treats request as End User
Using Access Token
• User at Service Provider website can
  choose to invalidate the access for
  Consumer at any time
Desktop Flow
Desktop Flow




http://flickr.com/photos/factoryjoe/sets/72157601300877805/detail/
Desktop Flow




http://flickr.com/photos/factoryjoe/sets/72157601300877805/detail/
Desktop Flow




http://flickr.com/photos/factoryjoe/sets/72157601300877805/detail/
Desktop Flow




http://flickr.com/photos/factoryjoe/sets/72157601300877805/detail/
Desktop Flow




http://flickr.com/photos/factoryjoe/sets/72157601300877805/detail/
Desktop Flow




http://flickr.com/photos/factoryjoe/sets/72157601300877805/detail/
Desktop Flow




http://flickr.com/photos/factoryjoe/sets/72157601300877805/detail/
Introducing OAuth4R
• Forget the protocol, just fill in the blanks
 • Provides code generators to allow
    Rails website to support OAuth easily
  • Generated scaffolds does the
    OAuth dance out of the box
  • Only need developers to link tokens
    to their Users
OAuth4R
svn checkout http://oauth4r.googlecode.com/svn/trunk/example_apps



• “Provider” site contains
 • users
 • users’ contacts
• “Consumer” site contains
 • only users
OAuth4R: Provider
cd example_apps/oauth_provider
rake db:create:all
rake db:migrate
./script/server -p 5001


      • Users controller at http://localhost:5001/users
       • with primitive login implemented
      • Users’ Addressbook controller at
        http://localhost:5001/contacts

        • with primitive permissions based on
           user’s login
OAuth4R: Consumer
                        cd ../oauth_consumer/
                        rake db:create:all
                        rake db:migrate
                        ./script/server -p 5000



• Users controller at http://localhost:5000/users
 • even more primitive login implementation
• For this demo, create a new user, “Tommy”
OAuth4R: Provider
cd ../oauth_provider/
./script/generate oauth_provider GetContact
rake db:migrate
patch -p0 < TODO.patch
./script/server -p 5001




      • Generate a “scaffold controller”
      • Controller does the OAuth dance
      • Modify to linkup with your own user
         models
• Modifying generated OAuth controller
• oauth_user = User.find(session..)
• Modify your User model to
  has_many oauth_user
• Modify controller guarding Protected
  Resources to requires_oauth
OAuth4R: Consumer
          cd ../oauth_consumer/
          ./script/generate oauth_consumer UseGetContact
          rake db:migrate
          patch -p0 < TODO1.patch
          ./script/server -p 5000




• Generate a “scaffold controller”
• Controller can do OAuth dance with one
  service provider
• Modify to linkup with your User models
• Modify generated OAuth controller
• oauth_user = User.find(session..)
• Modify user to has_many oauth_user
• Add a link to kick-start OAuth authorization
  link_to .. new_use_get_contact_path
Registering Consumer
• Go to
  http://localhost:5000/use_get_contacts

• Copy “Callback URL”
Registering Consumer
• http://localhost:5001/get_contacts/new
• Paste “Callback URL” & click Register
• Update  config/use_get_contacts.oauth.yml
User Authorization
• Go to http://localhost:5000/users
• Click on “Tommy > Show” to login
• Click on quot;Establish OAuth...quot;
User Authorization
• Click “Create” and you’ll arrive at provider
  site (http://localhost:5001) to Login

• Authorization prompt will appear



• Click “Yes” & you’ll be redirected back to
  consumer site (http://localhost:5000)
All done, then what?
• Scripts accessing APIs on behalf of End User
• This demo uses a simple ActiveResource
All done, then what?
$ ruby script/fetch_contacts.rb
/example_apps/oauth_consumer/vendor/rails/
activeresource/lib/active_resource/connection.rb:
124:in `handle_response': Failed with 500 Internal
Server Error (ActiveResource::ServerError)



• OAuth blocks our unauthenticated access
• We need to modify our API callers slightly
   patch -p0 < TODO2.patch
Modify ActiveResource
• Add acts_as_oauth_resource
 • underlying http connection will be
    automatically padded with OAuth
    credentials
Backend API Access?
• Wrap ActiveResource activity inside
  with_oauth code blocks
Done
$ ruby script/fetch_contacts.rb
---
- !ruby/object:Contact
  attributes:
    name: Dick
    updated_at: 2007-11-29 08:11:35 Z
    id: 1
    user_id: 1
    created_at: 2007-11-29 08:11:35 Z
  prefix_options: &id001 {}

- !ruby/object:Contact
  attributes:
    name: Harry
    updated_at: 2007-11-29 08:11:35 Z
    id: 2
    user_id: 1
    created_at: 2007-11-29 08:11:35 Z
  prefix_options: *id001
Ruby Links
• OAuth4R
  http://oauth4r.googlecode.com/



• OAuth Rails Plugin
  http://oauth-plugin.googlecode.com/
  http://stakeventures.com/articles/2007/11/26/how-to-turn-your-rails-site-into-an-oauth-provider



• OAuth Gem
  sudo gem install oauth



• OAuth (was Twitter)
  http://oauth.googlecode.com/svn/code/ruby/



• Google Group: oauth-ruby
  http://groups.google.com/group/oauth-ruby
Thank you!

Mais conteúdo relacionado

Destaque

Top 6 Geopolitical Predictions for 2015
Top 6 Geopolitical Predictions for 2015Top 6 Geopolitical Predictions for 2015
Top 6 Geopolitical Predictions for 2015Ziad K Abdelnour
 
Comunicacion y rrhh
Comunicacion y rrhhComunicacion y rrhh
Comunicacion y rrhhikasinfo
 
BIONDETTI ART - The Classics Art Collection
BIONDETTI ART - The Classics Art CollectionBIONDETTI ART - The Classics Art Collection
BIONDETTI ART - The Classics Art CollectionRon Flens
 
Conferencia células madre vidacord marzo 2015
Conferencia células madre vidacord marzo 2015Conferencia células madre vidacord marzo 2015
Conferencia células madre vidacord marzo 2015ikasinfo
 
Ten Things I Learned at a MASTODON Concert
Ten Things I Learned at a MASTODON ConcertTen Things I Learned at a MASTODON Concert
Ten Things I Learned at a MASTODON ConcertTom Richey
 
Social Media Influencers Predictions 2009 By Trendsspotting
Social Media Influencers Predictions 2009 By TrendsspottingSocial Media Influencers Predictions 2009 By Trendsspotting
Social Media Influencers Predictions 2009 By TrendsspottingTaly Weiss
 
Lolcatz 2 minute break 1
Lolcatz 2 minute break 1Lolcatz 2 minute break 1
Lolcatz 2 minute break 1lolcats
 
Connected Enterprise
Connected EnterpriseConnected Enterprise
Connected EnterpriseLee White
 
Social Apps 101
Social Apps 101Social Apps 101
Social Apps 101Meddle
 
Moving from "me" to "we"
Moving from "me" to "we"Moving from "me" to "we"
Moving from "me" to "we"Tim McDonald
 

Destaque (11)

Top 6 Geopolitical Predictions for 2015
Top 6 Geopolitical Predictions for 2015Top 6 Geopolitical Predictions for 2015
Top 6 Geopolitical Predictions for 2015
 
Comunicacion y rrhh
Comunicacion y rrhhComunicacion y rrhh
Comunicacion y rrhh
 
BIONDETTI ART - The Classics Art Collection
BIONDETTI ART - The Classics Art CollectionBIONDETTI ART - The Classics Art Collection
BIONDETTI ART - The Classics Art Collection
 
Conferencia células madre vidacord marzo 2015
Conferencia células madre vidacord marzo 2015Conferencia células madre vidacord marzo 2015
Conferencia células madre vidacord marzo 2015
 
Ten Things I Learned at a MASTODON Concert
Ten Things I Learned at a MASTODON ConcertTen Things I Learned at a MASTODON Concert
Ten Things I Learned at a MASTODON Concert
 
Social Media Influencers Predictions 2009 By Trendsspotting
Social Media Influencers Predictions 2009 By TrendsspottingSocial Media Influencers Predictions 2009 By Trendsspotting
Social Media Influencers Predictions 2009 By Trendsspotting
 
Lolcatz 2 minute break 1
Lolcatz 2 minute break 1Lolcatz 2 minute break 1
Lolcatz 2 minute break 1
 
Connected Enterprise
Connected EnterpriseConnected Enterprise
Connected Enterprise
 
Motivate and engage people
Motivate and engage peopleMotivate and engage people
Motivate and engage people
 
Social Apps 101
Social Apps 101Social Apps 101
Social Apps 101
 
Moving from "me" to "we"
Moving from "me" to "we"Moving from "me" to "we"
Moving from "me" to "we"
 

Semelhante a OAuth4 (and OAuth4R)

TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...
TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...
TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...TrustBearer
 
Securing a Windows Infrastructure using Windows Server 2012 & Windows 8 Built...
Securing a Windows Infrastructure using Windows Server 2012 & Windows 8 Built...Securing a Windows Infrastructure using Windows Server 2012 & Windows 8 Built...
Securing a Windows Infrastructure using Windows Server 2012 & Windows 8 Built...Microsoft TechNet - Belgium and Luxembourg
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Vinícius Carvalho
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...VMware Tanzu
 
POET Application Verification for Consumer Health Apps
POET Application Verification for Consumer Health AppsPOET Application Verification for Consumer Health Apps
POET Application Verification for Consumer Health AppsMark Scrimshire
 
Rest Security with JAX-RS
Rest Security with JAX-RSRest Security with JAX-RS
Rest Security with JAX-RSFrank Kim
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
Troubleshooting Novell Access Manager 3.1
Troubleshooting Novell Access Manager 3.1Troubleshooting Novell Access Manager 3.1
Troubleshooting Novell Access Manager 3.1Novell
 
Crossroads of Asynchrony and Graceful Degradation
Crossroads of Asynchrony and Graceful DegradationCrossroads of Asynchrony and Graceful Degradation
Crossroads of Asynchrony and Graceful DegradationC4Media
 
TrialPay Security Tech Talk at Stanford ACM
TrialPay Security Tech Talk at Stanford ACMTrialPay Security Tech Talk at Stanford ACM
TrialPay Security Tech Talk at Stanford ACMhackingtrialpay
 
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...Amazon Web Services
 
Cryptographic authentication
Cryptographic authenticationCryptographic authentication
Cryptographic authenticationnirmal08
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Atlassian
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Atlassian
 
OAuth2 on Ericsson Labs
OAuth2 on Ericsson LabsOAuth2 on Ericsson Labs
OAuth2 on Ericsson LabsEricsson Labs
 
CIS 2015 OpenID Connect and Mobile Applications - David Chase
CIS 2015 OpenID Connect and Mobile Applications - David ChaseCIS 2015 OpenID Connect and Mobile Applications - David Chase
CIS 2015 OpenID Connect and Mobile Applications - David ChaseCloudIDSummit
 

Semelhante a OAuth4 (and OAuth4R) (20)

TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...
TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...
TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...
 
OAuth using PHP5
OAuth using PHP5OAuth using PHP5
OAuth using PHP5
 
Securing a Windows Infrastructure using Windows Server 2012 & Windows 8 Built...
Securing a Windows Infrastructure using Windows Server 2012 & Windows 8 Built...Securing a Windows Infrastructure using Windows Server 2012 & Windows 8 Built...
Securing a Windows Infrastructure using Windows Server 2012 & Windows 8 Built...
 
OAuth 2.0 101
OAuth 2.0 101OAuth 2.0 101
OAuth 2.0 101
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
 
POET Application Verification for Consumer Health Apps
POET Application Verification for Consumer Health AppsPOET Application Verification for Consumer Health Apps
POET Application Verification for Consumer Health Apps
 
Rest Security with JAX-RS
Rest Security with JAX-RSRest Security with JAX-RS
Rest Security with JAX-RS
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
Troubleshooting Novell Access Manager 3.1
Troubleshooting Novell Access Manager 3.1Troubleshooting Novell Access Manager 3.1
Troubleshooting Novell Access Manager 3.1
 
Crossroads of Asynchrony and Graceful Degradation
Crossroads of Asynchrony and Graceful DegradationCrossroads of Asynchrony and Graceful Degradation
Crossroads of Asynchrony and Graceful Degradation
 
TrialPay Security Tech Talk at Stanford ACM
TrialPay Security Tech Talk at Stanford ACMTrialPay Security Tech Talk at Stanford ACM
TrialPay Security Tech Talk at Stanford ACM
 
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
 
Cryptographic authentication
Cryptographic authenticationCryptographic authentication
Cryptographic authentication
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
 
OAuth2 on Ericsson Labs
OAuth2 on Ericsson LabsOAuth2 on Ericsson Labs
OAuth2 on Ericsson Labs
 
OAuth
OAuthOAuth
OAuth
 
CIS 2015 OpenID Connect and Mobile Applications - David Chase
CIS 2015 OpenID Connect and Mobile Applications - David ChaseCIS 2015 OpenID Connect and Mobile Applications - David Chase
CIS 2015 OpenID Connect and Mobile Applications - David Chase
 

Último

Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...instagramfab782445
 
WhatsApp Chat: 📞 8617697112 Call Girl Baran is experienced
WhatsApp Chat: 📞 8617697112 Call Girl Baran is experiencedWhatsApp Chat: 📞 8617697112 Call Girl Baran is experienced
WhatsApp Chat: 📞 8617697112 Call Girl Baran is experiencedNitya salvi
 
Hingoli ❤CALL GIRL 8617370543 ❤CALL GIRLS IN Hingoli ESCORT SERVICE❤CALL GIRL
Hingoli ❤CALL GIRL 8617370543 ❤CALL GIRLS IN Hingoli ESCORT SERVICE❤CALL GIRLHingoli ❤CALL GIRL 8617370543 ❤CALL GIRLS IN Hingoli ESCORT SERVICE❤CALL GIRL
Hingoli ❤CALL GIRL 8617370543 ❤CALL GIRLS IN Hingoli ESCORT SERVICE❤CALL GIRLNitya salvi
 
ab-initio-training basics and architecture
ab-initio-training basics and architectureab-initio-training basics and architecture
ab-initio-training basics and architecturesaipriyacoool
 
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...amitlee9823
 
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...RitikaRoy32
 
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...karishmasinghjnh
 
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...amitlee9823
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...SUHANI PANDEY
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...kumaririma588
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...nirzagarg
 
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...amitlee9823
 
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证eeanqy
 
Sweety Planet Packaging Design Process Book.pptx
Sweety Planet Packaging Design Process Book.pptxSweety Planet Packaging Design Process Book.pptx
Sweety Planet Packaging Design Process Book.pptxbingyichin04
 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)amitlee9823
 
Just Call Vip call girls Nagpur Escorts ☎️8617370543 Starting From 5K to 25K ...
Just Call Vip call girls Nagpur Escorts ☎️8617370543 Starting From 5K to 25K ...Just Call Vip call girls Nagpur Escorts ☎️8617370543 Starting From 5K to 25K ...
Just Call Vip call girls Nagpur Escorts ☎️8617370543 Starting From 5K to 25K ...Nitya salvi
 
➥🔝 7737669865 🔝▻ dharamshala Call-girls in Women Seeking Men 🔝dharamshala🔝 ...
➥🔝 7737669865 🔝▻ dharamshala Call-girls in Women Seeking Men  🔝dharamshala🔝  ...➥🔝 7737669865 🔝▻ dharamshala Call-girls in Women Seeking Men  🔝dharamshala🔝  ...
➥🔝 7737669865 🔝▻ dharamshala Call-girls in Women Seeking Men 🔝dharamshala🔝 ...amitlee9823
 

Último (20)

Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
 
WhatsApp Chat: 📞 8617697112 Call Girl Baran is experienced
WhatsApp Chat: 📞 8617697112 Call Girl Baran is experiencedWhatsApp Chat: 📞 8617697112 Call Girl Baran is experienced
WhatsApp Chat: 📞 8617697112 Call Girl Baran is experienced
 
Hingoli ❤CALL GIRL 8617370543 ❤CALL GIRLS IN Hingoli ESCORT SERVICE❤CALL GIRL
Hingoli ❤CALL GIRL 8617370543 ❤CALL GIRLS IN Hingoli ESCORT SERVICE❤CALL GIRLHingoli ❤CALL GIRL 8617370543 ❤CALL GIRLS IN Hingoli ESCORT SERVICE❤CALL GIRL
Hingoli ❤CALL GIRL 8617370543 ❤CALL GIRLS IN Hingoli ESCORT SERVICE❤CALL GIRL
 
ab-initio-training basics and architecture
ab-initio-training basics and architectureab-initio-training basics and architecture
ab-initio-training basics and architecture
 
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
 
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
 
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
 
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
Jigani Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bangal...
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
Nisha Yadav Escorts Service Ernakulam ❣️ 7014168258 ❣️ High Cost Unlimited Ha...
 
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men  🔝jhansi🔝   Escorts S...
➥🔝 7737669865 🔝▻ jhansi Call-girls in Women Seeking Men 🔝jhansi🔝 Escorts S...
 
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
怎样办理伯明翰大学学院毕业证(Birmingham毕业证书)成绩单留信认证
 
Sweety Planet Packaging Design Process Book.pptx
Sweety Planet Packaging Design Process Book.pptxSweety Planet Packaging Design Process Book.pptx
Sweety Planet Packaging Design Process Book.pptx
 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 
Just Call Vip call girls Nagpur Escorts ☎️8617370543 Starting From 5K to 25K ...
Just Call Vip call girls Nagpur Escorts ☎️8617370543 Starting From 5K to 25K ...Just Call Vip call girls Nagpur Escorts ☎️8617370543 Starting From 5K to 25K ...
Just Call Vip call girls Nagpur Escorts ☎️8617370543 Starting From 5K to 25K ...
 
➥🔝 7737669865 🔝▻ dharamshala Call-girls in Women Seeking Men 🔝dharamshala🔝 ...
➥🔝 7737669865 🔝▻ dharamshala Call-girls in Women Seeking Men  🔝dharamshala🔝  ...➥🔝 7737669865 🔝▻ dharamshala Call-girls in Women Seeking Men  🔝dharamshala🔝  ...
➥🔝 7737669865 🔝▻ dharamshala Call-girls in Women Seeking Men 🔝dharamshala🔝 ...
 

OAuth4 (and OAuth4R)