travis

Intra

A relatively quick way to add Omniauth strategies to authenticate users on your internal Rails apps. No username/password authentication.

Installation

Add this line to your application's Gemfile:

gem 'intra'

And then execute:

$ bundle

Or install it yourself as:

$ gem install intra

Then install the initializer and user migration

$ bin/rails intra:install

Usage

The rake task adds an initializer in config/initializers/intra.rb and a migration for a basic user model. Customize and run the migration if you need to.

The GOOGLE_OPTIONS[:hd] in the initializer allows you to limit sign-in to a particular Google Apps hosted domain. This can be simply string 'domain.com' or an array %w(domain.com domain.co). More information at: https://developers.google.com/accounts/docs/OpenIDConnect#hd-param

The Rack middleware assumes you have a model to record users with at least the following schema.

    t.string :uuid, null: false
    t.string :email
    t.string :remember_token
    t.string :first_name
    t.string :last_name
    t.string :image_url

You may want to add an index on remember_token (and maybe uuid) because on first authentication, uuid is used while remember_token is used on each subsequent HTTP request.

Configure the user model in the initializer and include the Authenticatable module into that class.

    class User < ApplicationRecord
      include Intra::Authenticatable
    end

You can customize the default sign in screen by creating your own view at app/views/intra/sessions/new.html.erb

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/intra. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.