SlideShare une entreprise Scribd logo
1  sur  65
Télécharger pour lire hors ligne
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!

Contenu connexe

En vedette

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
 

En vedette (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"
 

Similaire à 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
 

Similaire à 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
 

Dernier

306MTAMount UCLA University Bachelor's Diploma in Social Media
306MTAMount UCLA University Bachelor's Diploma in Social Media306MTAMount UCLA University Bachelor's Diploma in Social Media
306MTAMount UCLA University Bachelor's Diploma in Social MediaD SSS
 
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一F La
 
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...mrchrns005
 
3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdf3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdfSwaraliBorhade
 
Passbook project document_april_21__.pdf
Passbook project document_april_21__.pdfPassbook project document_april_21__.pdf
Passbook project document_april_21__.pdfvaibhavkanaujia
 
group_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdfgroup_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdfneelspinoy
 
Mookuthi is an artisanal nose ornament brand based in Madras.
Mookuthi is an artisanal nose ornament brand based in Madras.Mookuthi is an artisanal nose ornament brand based in Madras.
Mookuthi is an artisanal nose ornament brand based in Madras.Mookuthi
 
FiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfFiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfShivakumar Viswanathan
 
How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIyuj
 
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degreeyuu sss
 
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10uasjlagroup
 
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一Fi L
 
办理(USYD毕业证书)澳洲悉尼大学毕业证成绩单原版一比一
办理(USYD毕业证书)澳洲悉尼大学毕业证成绩单原版一比一办理(USYD毕业证书)澳洲悉尼大学毕业证成绩单原版一比一
办理(USYD毕业证书)澳洲悉尼大学毕业证成绩单原版一比一diploma 1
 
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)jennyeacort
 
shot list for my tv series two steps back
shot list for my tv series two steps backshot list for my tv series two steps back
shot list for my tv series two steps back17lcow074
 
Call Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full NightCall Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full Nightssuser7cb4ff
 
ARt app | UX Case Study
ARt app | UX Case StudyARt app | UX Case Study
ARt app | UX Case StudySophia Viganò
 
cda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis pptcda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis pptMaryamAfzal41
 
韩国SKKU学位证,成均馆大学毕业证书1:1制作
韩国SKKU学位证,成均馆大学毕业证书1:1制作韩国SKKU学位证,成均馆大学毕业证书1:1制作
韩国SKKU学位证,成均馆大学毕业证书1:1制作7tz4rjpd
 
PORTAFOLIO 2024_ ANASTASIYA KUDINOVA
PORTAFOLIO   2024_  ANASTASIYA  KUDINOVAPORTAFOLIO   2024_  ANASTASIYA  KUDINOVA
PORTAFOLIO 2024_ ANASTASIYA KUDINOVAAnastasiya Kudinova
 

Dernier (20)

306MTAMount UCLA University Bachelor's Diploma in Social Media
306MTAMount UCLA University Bachelor's Diploma in Social Media306MTAMount UCLA University Bachelor's Diploma in Social Media
306MTAMount UCLA University Bachelor's Diploma in Social Media
 
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
 
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
 
3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdf3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdf
 
Passbook project document_april_21__.pdf
Passbook project document_april_21__.pdfPassbook project document_april_21__.pdf
Passbook project document_april_21__.pdf
 
group_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdfgroup_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdf
 
Mookuthi is an artisanal nose ornament brand based in Madras.
Mookuthi is an artisanal nose ornament brand based in Madras.Mookuthi is an artisanal nose ornament brand based in Madras.
Mookuthi is an artisanal nose ornament brand based in Madras.
 
FiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfFiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdf
 
How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AI
 
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
专业一比一美国亚利桑那大学毕业证成绩单pdf电子版制作修改#真实工艺展示#真实防伪#diploma#degree
 
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
 
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
办理学位证(TheAuckland证书)新西兰奥克兰大学毕业证成绩单原版一比一
 
办理(USYD毕业证书)澳洲悉尼大学毕业证成绩单原版一比一
办理(USYD毕业证书)澳洲悉尼大学毕业证成绩单原版一比一办理(USYD毕业证书)澳洲悉尼大学毕业证成绩单原版一比一
办理(USYD毕业证书)澳洲悉尼大学毕业证成绩单原版一比一
 
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
 
shot list for my tv series two steps back
shot list for my tv series two steps backshot list for my tv series two steps back
shot list for my tv series two steps back
 
Call Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full NightCall Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full Night
 
ARt app | UX Case Study
ARt app | UX Case StudyARt app | UX Case Study
ARt app | UX Case Study
 
cda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis pptcda.pptx critical discourse analysis ppt
cda.pptx critical discourse analysis ppt
 
韩国SKKU学位证,成均馆大学毕业证书1:1制作
韩国SKKU学位证,成均馆大学毕业证书1:1制作韩国SKKU学位证,成均馆大学毕业证书1:1制作
韩国SKKU学位证,成均馆大学毕业证书1:1制作
 
PORTAFOLIO 2024_ ANASTASIYA KUDINOVA
PORTAFOLIO   2024_  ANASTASIYA  KUDINOVAPORTAFOLIO   2024_  ANASTASIYA  KUDINOVA
PORTAFOLIO 2024_ ANASTASIYA KUDINOVA
 

OAuth4 (and OAuth4R)