Calibration Assignment Submission 1

From Expertiza_Wiki
Jump to navigation Jump to search

OmniAuth is an authentication library written in Ruby under MIT License<ref name="home">Home Page https://opensource.org/licenses/MIT</ref>. OmniAuth is used to enable third party authentication in Ruby on Rails applications. As of September 2015, OpenAuth supported authentication via 218 specific service providers<ref name="los">List of Strategies https://github.com/intridea/omniauth/wiki/List-of-Strategies</ref>. In addition to the specific service providers, 13 generic authentication plugins are also provided.<ref name="los"/>

History

While working a Intridea, Micheal Bleigh started working on OmniAuth in 2008<ref name="home"/><ref>Micheal Bleigh http://www.intridea.com/about/team/michael-bleigh</ref>. OmniAuth version 1.0 was released in November of 2011.<ref>Bleigh, Michael (2 November 2011) http://www.intridea.com/blog/2011/11/2/omniauth-1-0</ref> The latest release of OmniAuth, version 1.2.2, was tagged on July 9, 2014<ref>omniauth Releases https://github.com/intridea/omniauth/releases</ref>.

Strategies

OmniAuth referes to the plugins that provide authentication via authentication providers, strategies. Strategies are further categorized into provider strategies and developer strategies.

Provider Strategies

Provider strategies enable authentication to a specific authentication provider. Some example provider strategies are:

  • Facebook
  • GitHub
  • Twitter
  • Google
  • Windows Live ID

Developer Strategies

Developer strategies enable authentication to providers that conform to open or well known standards. Most of the specific provider strategies are customized versions of one of the developer strategies.

  • CAS
  • Http Basic
  • Kerberos
  • LDAP
  • OAuth
  • OAuth2
  • OpenID
  • OpenAM
  • SAML
  • Shibboleth
  • WS-Federation
  • XAuth
  • ADFS

Ruby on Rails Integration

Integrating OmniAuth into a Rails application that follows the standard authentication pattern for a Rails application is simply a matter of: (1) initialize an OmniAuth::Builder with your authentication provider details, (2) route login requests to /auth/:provider instead of your own login page, and (3) route /auth/:provider/callback to a controller action that initializes your user session (e.g. sessions#create)<ref>OmniAuth Wiki https://github.com/intridea/omniauth/wiki</ref><ref>OmniAuth README.md https://github.com/intridea/omniauth</ref>.

References

<references/>