No commit activity in last 3 years
No release in over 3 years
A warden strategy to use Google"s Federated OpenID with Google Apps
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.0.10
>= 1.2.6
>= 3.0.4
~> 0.5.0
>= 0
>= 0.1.4
>= 0
~> 1.2.9
~> 1.0
~> 0.7.0

Runtime

 Project Readme

warden-googleapps

A Warden middleware for google apps. It needs a little work but definitely authenticates you just fine in Rack apps.

Example

Gemfile

source :gemcutter

gem 'haml',                '~>2.2.0'
gem 'warden-googleapps',    '=0.0.3'

group :development do
  gem 'shotgun'
end

app.rb

module DirectoryAdmin
  class App < Sinatra::Default
    disable :show_errors
    disable :show_exceptions

    use Warden::Manager do |manager|
      manager.default_strategies :google_apps
      manager.failure_app = BadAuthentication

      manager[:google_apps_domain]   = 'example.org'
      # manager[:google_apps_endpoint]      = 'http://www.google.com/accounts/o8/id' # this is gmail
      # manager[:google_apps_redirect_url]  = 'http://example.org/verify_url' # endpoint where google apps redirects to after successful authentication
    end

    helpers do
      def ensure_authenticated
        unless env['warden'].authenticate!
          throw(:warden)
        end
      end

      def user
        env['warden'].user
      end
    end

    get '/' do
      ensure_authenticated
      haml "%h2= 'Hello There, #{user.full_name}!'"
    end

    get '/logout' do
      env['warden'].logout
      haml "%h2= 'Peace!'"
    end
  end

  class BadAuthentication < Sinatra::Default
    get '/unauthenticated' do
      status 403
      haml "%h3= 'Unable to authenticate, sorry bud.'"
    end
  end
end

Enabling on GMail

It should just work, even for localhost.

Also checkout sinatra-auth-gmail.

Enabling on Google Apps for Domains

Be sure you have Federated Login using OpenID enabled under your Advanced Settings Tab

Your Google Apps Admin Dashboard

Developing

% gem install bundler
% bundle install
% bundle exec rake repackage