SlideShare a Scribd company logo
1 of 26
Easy Testing on Ruby
                        OpenID Consumer
                          Implementations
                             by Roman Gonzalez.




Tuesday 24 March 2009
Presentation Highlights
                   • What is OpenID?
                   • URL’s as our identity credentials
                   • OpenID Terminology
                   • The OpenID authentication process
                        explained
                   • How to implement RP’s Ruby
Tuesday 24 March 2009
Presentation Highlights

                   • Testing OpenID RP’s
                   • Demo (Rails, Merb)
                   • Q&A’s


Tuesday 24 March 2009
What is OpenID?
                   • A protocol that promotes the use of a
                        single digital identity (Single Sign On)
                   • Decentralized
                   • Simple and light-weight (no high security
                        stuff)
                   • Built upon Web technologies (HTTP, DNS)

Tuesday 24 March 2009
URL’s are our
                               credentials

                   • Most of people already have an URL to
                        represent their identity (Facebook, Twitter)
                   • They are globally unique and ubiquitous


Tuesday 24 March 2009
OpenID Terminology

                   • Actors
                    • Identifier (URL of the user)
                    • User-Agent (normally a Web Browser)
                    • Relying Party (RP)
                    • OpenID Provider (OP)

Tuesday 24 March 2009
OpenID Terminology

                   • Direct Messages
                    • HTTP POST requests from RP’s to OP’s
                    • Used for interchange of public keys


Tuesday 24 March 2009
OpenID Terminology

                   • Indirect Messages
                    • HTTP Redirects from RP’s to OP’s and
                          back
                        • Used for the authentication process


Tuesday 24 March 2009
OpenID Authentication
                 Step 1. Discovery




Tuesday 24 March 2009
OpenID Authentication
                 Step 1. Discovery



                               HTTP GET




Tuesday 24 March 2009
OpenID Authentication
                 Step 1. Discovery




Tuesday 24 March 2009
OpenID Authentication
                 Step 1. Discovery




Tuesday 24 March 2009
OpenID Authentication
                 Step 1. Discovery




Tuesday 24 March 2009
OpenID Authentication
                 Step 2. Association




Tuesday 24 March 2009
OpenID Authentication
                 Step 2. Association



                                HTTP POST




                          Exchange of public keys


Tuesday 24 March 2009
OpenID Authentication
                 Step 3. Give credentials to OP




Tuesday 24 March 2009
OpenID Authentication
                 Step 4. Choose which info to give to the RP




Tuesday 24 March 2009
OpenID Authentication
                 Step 5. You are _authenticated_




Tuesday 24 March 2009
Implementing OpenID
                         RP’s in Ruby
                   • Ruby On Rails: open_id_authentication by
                        rails at http://github.com
                   • Merb: hassox’s merb-auth gem, using the
                        OpenID strategy
                   • Rack: Using the auth/openid Rack app
                        included in the gem



Tuesday 24 March 2009
Testing OpenID RP’s
                   • How do we make test on it?
                        •   First naive approach: mocking/stubbing the ruby-
                            openid gem

                   • Why it is so hard to test?
                        •   Multiple types of communication between the
                            RP and the OP

                        •   The existing OP’s need human interaction



Tuesday 24 March 2009
Introducing ROTS
                                (Ruby OpenID Test Server)




                   • It provides an “easy” interface for
                        automated testing
                   • It uses an OP test servers (provided on the
                        gem) and a test API




Tuesday 24 March 2009
DEMO



Tuesday 24 March 2009
Final Thoughts


                   • ROTS is _not_ a silver bullet
                   • OpenID is not perfect, and it is not trying
                        to be




Tuesday 24 March 2009
Resources

                   • http://openidexplained.com
                   • http://github.com/rails/open_id_auth
                   • http://github.com/roman/rots
                   • http://test-id.net

Tuesday 24 March 2009
Q&A’s



Tuesday 24 March 2009
Thanks...
                             Contact Me
                        Follow: http://twitter/romanandreg
                        Read: http://blog.romanandreg.com



Tuesday 24 March 2009

More Related Content

Viewers also liked

Ma'rifah & taklid
Ma'rifah & taklidMa'rifah & taklid
Ma'rifah & taklidNur Hikmah
 
Introduction To Islam
Introduction To IslamIntroduction To Islam
Introduction To IslamAmgad Helmy
 
Tools Of The Trade
Tools Of The TradeTools Of The Trade
Tools Of The TradeJeff Ray
 
Monica Tourino Ferreiros
Monica Tourino FerreirosMonica Tourino Ferreiros
Monica Tourino Ferreirosecursocig
 
Your Attitude Is Showing
Your Attitude Is ShowingYour Attitude Is Showing
Your Attitude Is ShowingThinkLars
 
2b K Esahan Dan Kebolehpercayaaan Ringkas
2b K Esahan Dan Kebolehpercayaaan Ringkas2b K Esahan Dan Kebolehpercayaaan Ringkas
2b K Esahan Dan Kebolehpercayaaan RingkasNur Hikmah
 
Dynamic Communication
Dynamic CommunicationDynamic Communication
Dynamic CommunicationThinkLars
 
Chapter 5 — Notecards
Chapter 5 — NotecardsChapter 5 — Notecards
Chapter 5 — Notecardspfoa54263
 

Viewers also liked (12)

Ma'rifah & taklid
Ma'rifah & taklidMa'rifah & taklid
Ma'rifah & taklid
 
fasakh
fasakhfasakh
fasakh
 
Introduction To Islam
Introduction To IslamIntroduction To Islam
Introduction To Islam
 
2 talak
2 talak2 talak
2 talak
 
8 Penilaian
8 Penilaian8 Penilaian
8 Penilaian
 
khuluk
khulukkhuluk
khuluk
 
Tools Of The Trade
Tools Of The TradeTools Of The Trade
Tools Of The Trade
 
Monica Tourino Ferreiros
Monica Tourino FerreirosMonica Tourino Ferreiros
Monica Tourino Ferreiros
 
Your Attitude Is Showing
Your Attitude Is ShowingYour Attitude Is Showing
Your Attitude Is Showing
 
2b K Esahan Dan Kebolehpercayaaan Ringkas
2b K Esahan Dan Kebolehpercayaaan Ringkas2b K Esahan Dan Kebolehpercayaaan Ringkas
2b K Esahan Dan Kebolehpercayaaan Ringkas
 
Dynamic Communication
Dynamic CommunicationDynamic Communication
Dynamic Communication
 
Chapter 5 — Notecards
Chapter 5 — NotecardsChapter 5 — Notecards
Chapter 5 — Notecards
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 

Easy Testing On Ruby Openid Consumers

  • 1. Easy Testing on Ruby OpenID Consumer Implementations by Roman Gonzalez. Tuesday 24 March 2009
  • 2. Presentation Highlights • What is OpenID? • URL’s as our identity credentials • OpenID Terminology • The OpenID authentication process explained • How to implement RP’s Ruby Tuesday 24 March 2009
  • 3. Presentation Highlights • Testing OpenID RP’s • Demo (Rails, Merb) • Q&A’s Tuesday 24 March 2009
  • 4. What is OpenID? • A protocol that promotes the use of a single digital identity (Single Sign On) • Decentralized • Simple and light-weight (no high security stuff) • Built upon Web technologies (HTTP, DNS) Tuesday 24 March 2009
  • 5. URL’s are our credentials • Most of people already have an URL to represent their identity (Facebook, Twitter) • They are globally unique and ubiquitous Tuesday 24 March 2009
  • 6. OpenID Terminology • Actors • Identifier (URL of the user) • User-Agent (normally a Web Browser) • Relying Party (RP) • OpenID Provider (OP) Tuesday 24 March 2009
  • 7. OpenID Terminology • Direct Messages • HTTP POST requests from RP’s to OP’s • Used for interchange of public keys Tuesday 24 March 2009
  • 8. OpenID Terminology • Indirect Messages • HTTP Redirects from RP’s to OP’s and back • Used for the authentication process Tuesday 24 March 2009
  • 9. OpenID Authentication Step 1. Discovery Tuesday 24 March 2009
  • 10. OpenID Authentication Step 1. Discovery HTTP GET Tuesday 24 March 2009
  • 11. OpenID Authentication Step 1. Discovery Tuesday 24 March 2009
  • 12. OpenID Authentication Step 1. Discovery Tuesday 24 March 2009
  • 13. OpenID Authentication Step 1. Discovery Tuesday 24 March 2009
  • 14. OpenID Authentication Step 2. Association Tuesday 24 March 2009
  • 15. OpenID Authentication Step 2. Association HTTP POST Exchange of public keys Tuesday 24 March 2009
  • 16. OpenID Authentication Step 3. Give credentials to OP Tuesday 24 March 2009
  • 17. OpenID Authentication Step 4. Choose which info to give to the RP Tuesday 24 March 2009
  • 18. OpenID Authentication Step 5. You are _authenticated_ Tuesday 24 March 2009
  • 19. Implementing OpenID RP’s in Ruby • Ruby On Rails: open_id_authentication by rails at http://github.com • Merb: hassox’s merb-auth gem, using the OpenID strategy • Rack: Using the auth/openid Rack app included in the gem Tuesday 24 March 2009
  • 20. Testing OpenID RP’s • How do we make test on it? • First naive approach: mocking/stubbing the ruby- openid gem • Why it is so hard to test? • Multiple types of communication between the RP and the OP • The existing OP’s need human interaction Tuesday 24 March 2009
  • 21. Introducing ROTS (Ruby OpenID Test Server) • It provides an “easy” interface for automated testing • It uses an OP test servers (provided on the gem) and a test API Tuesday 24 March 2009
  • 23. Final Thoughts • ROTS is _not_ a silver bullet • OpenID is not perfect, and it is not trying to be Tuesday 24 March 2009
  • 24. Resources • http://openidexplained.com • http://github.com/rails/open_id_auth • http://github.com/roman/rots • http://test-id.net Tuesday 24 March 2009
  • 26. Thanks... Contact Me Follow: http://twitter/romanandreg Read: http://blog.romanandreg.com Tuesday 24 March 2009

Editor's Notes

  1. Good evening, my name is <name> and I will be presenting <title> First thing I want to point out that is that, I&#x2019;m not going to go to deep on the OpenID Theory, I will just tackle the surface of it, for all the people that is not familiar with it, get an idea of what this is all about.
  2. * Define OpenID * Explain why we use * Define the terms used in the OpenID protocol, <easier> * Tackle the whole OpenID authentication process * Show the best options for implementing RP&#x2019;s
  3. * How to manage the test process of our RP&#x2019;s implementations * I&#x2019;ll show you some code with Rails and Merb, and we are going to define a test
  4. * No forgetting passwords, manage your user information on one place * You don&#x2019;t have to make federations in order to make this work, the identities doesn&#x2019;t need to be in one OpenID Server * This protocol tries to be as simple as possible, ergo. it can be tackled because of this simplicity * It&#x2019;s proven to work because it&#x2019;s in top of the most popular Web technology
  5. * This makes it really easy for people to adapt to the concept of it * The same URL works, no matter where you are, and it can be found on the Web