OmniAuth MSU NetID
Description
This is the official OmniAuth strategy gem for authenticating to Michigan State University MSU NetID using OAuth2. To use this gem you'll need the following:
- Contact MSU Information Technology Service Desk at 517-432-6200 to request to register your application, or complete the [OAuth 2.0 request form] (https://tech.msu.edu/network/authentication-authorization)
- Provide MSU Information Technology Identity Management with a callback URL, which is where to send successful MSU NetID authentication requests back to your application. Note: this must be a HTTPS address.
- Receive a
client_id
token andclient_secret
token specific for your application.
Installation
To install this gem you need to add it to your Gemfile as follows:
gem 'omniauth-msunet'
Basic Usage
If this is your applications first OmniAuth strategy then you will need to create the file config/initializers/omniauth.rb, otherwise update your existing one.
Rails.application.config.middleware.use OmniAuth::Builder do
provider :msunet, "replace_with_client_id", "replace_with_client_secret"
end
Next you need to setup some routes to handle the callback and if it's a success or failure. You could use something like the following in your config/routes.rb file
match 'auth/:provider/callback', to: 'sessions#create'
match 'auth/failure', to: redirect('/')
match 'signout', to: 'sessions#destroy', as: 'signout'
Finally restart your server for all of the changes to take effect. You can now browse to your apps URL https://0.0.0.0/auth/msunet
to login.
Once the login is completed you should receive the following hash that you can access:
{
"provider":"msunet",
"uid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"info":{
"name":"John Sparty",
"email":"sparty@msu.edu",
"first_name":"John",
"last_name":"Sparty",
"description":"MSU NetID OAuth2 Auth-n"
}
}
Development
- Clone the repository
- Write some tests
- Make them pass
- Request a pull
Testing
bundle exec rspec
Releasing
Use the version gem. See bundle exec rake -T version
for commands. Bumping the version will change the VERSION
file, commit the changes, and create a tag. You can then push the tag to your
remote:
bundle exec rake version:bump # create a minor version bump
git push # push code changes
git push origin $(bundle exec rake version) # push new tag
License
Please see the LICENSE.md file.