User:Sanchezl/OmniAuth

OmniAuth is an authentication library written in Ruby under MIT License. OmniAuth is used to enable third party authentication in Ruby on Rails applications. As of September 2015, OmniAuth supported authentication via 218 specific service providers. In addition to the specific service providers, 13 generic authentication plugins are also provided.

History
While working at Intridea, Micheal Bleigh started developing OmniAuth in 2008. OmniAuth version 1.0 was released in November of 2011. The latest release of OmniAuth, version 1.2.2, was tagged on July 9, 2014.

Strategies
OmniAuth referes to the plugins that provide authentication via authentication providers as 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: As of September 2015, over 200 provider strategies are listed in List of Strategies topic on the OmniAuth wiki.
 * 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. More details on the developer strategies are listed in List of Strategies topic on the OmniAuth wiki.
 * Central Authentication Service (CAS)
 * Basic access authentication
 * Kerberos
 * Lightweight Directory Access Protocol (LDAP)
 * OAuth
 * OAuth2
 * OpenID
 * OpenAM
 * Security Assertion Markup Language (SAML)
 * Shibboleth
 * WS-Federation
 * Active Directory Federation Services (ADFS)

Custom Strategies
If none of the packaged strategies meet a user's need, OmniAuth provides an SPI that anyone can extend to create their own strategy.

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  instead of your own login page, and (3) route   to a controller action that initializes your user session (e.g.  ).