---
layout: default
navsection: installguide
title: Install Single Sign On (SSO) server
...
h2(#dependencies). Install dependencies
Make sure you have "Ruby and Bundler":install-manual-prerequisites-ruby.html installed.
h2(#install). Install SSO server
h3. Get SSO server code and run bundle
~$ cd $HOME # (or wherever you want to install)
~$ git clone https://github.com/curoverse/sso-devise-omniauth-provider.git
~$ cd sso-devise-omniauth-provider
~/sso-devise-omniauth-provider$ bundle install
~/sso-devise-omniauth-provider$ ruby -e 'puts rand(2**128).to_s(36)'
abcdefghijklmnopqrstuvwxyz012345689
~/sso-devise-omniauth-provider$ sudo -u postgres createuser --createdb --encrypted -R -S --pwprompt arvados_sso
Enter password for new role: paste-database-password-you-generated
Enter it again: paste-database-password-you-generated
~/sso-devise-omniauth-provider$ cp -i config/database.yml.sample config/database.yml
~/sso-devise-omniauth-provider$ edit config/database.yml
~/sso-devise-omniauth-provider$ RAILS_ENV=production bundle exec rake db:setup
~/sso-devise-omniauth-provider$ su postgres createdb arvados_sso_production -E UTF8 -O arvados_sso
~/sso-devise-omniauth-provider$ RAILS_ENV=production bundle exec rake db:structure:load
~/sso-devise-omniauth-provider$ RAILS_ENV=production bundle exec rake db:seed
~/sso-devise-omniauth-provider$ cp -i config/application.yml.example config/application.yml
~/sso-devise-omniauth-provider$ ruby -e 'puts rand(2**400).to_s(36)'
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
# Google API tokens required for OAuth2 login. # # See https://github.com/zquestz/omniauth-google-oauth2 # # and https://developers.google.com/accounts/docs/OAuth2 google_oauth2_client_id: false google_oauth2_client_secret: false # Set this to your OpenId 2.0 realm to enable migration from Google OpenId # 2.0 to Google OAuth2 OpenId Connect (Google will provide OpenId 2.0 user # identifiers via the openid.realm parameter in the OAuth2 flow until 2017). google_openid_realm: falseh3(#ldap). ldap authentication LDAP authentication can be configured with these options. Make sure to preserve the indentation of the fields beyond @use_ldap@.
# Enable LDAP support. # # If you want to use LDAP, you need to provide # the following set of fields under the use_ldap key. # # use_ldap: false # title: Example LDAP # host: ldap.example.com # port: 636 # method: ssl # base: "ou=Users, dc=example, dc=com" # uid: uid # email_domain: example.com # #bind_dn: "some_user" # #password: "some_password" use_ldap: falseh3(#local_accounts). local account authentication If neither Google OAuth2 nor LDAP are enabled, the SSO server automatically falls back to local accounts. There are two configuration options for local accounts:
# If true, allow new creation of new accounts in the SSO server's internal # user database. allow_account_registration: false # If true, send an email confirmation before activating new accounts in the # SSO server's internal user database. require_email_confirmation: falseYou can also create local accounts on the SSO server from the rails console:
~/sso-devise-omniauth-provider$ RAILS_ENV=production bundle exec rails console
:001 > user = User.new(:email => "test@example.com")
:002 > user.password = "passw0rd"
:003 > user.save!
:004 > quit
~/sso-devise-omniauth-provider$ ruby -e 'puts rand(2**400).to_s(36)'
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
~/sso-devise-omniauth-provider$ RAILS_ENV=production bundle exec rails console
:001 > c = Client.new
:002 > c.name = "joshid"
:003 > c.app_id = "arvados-server"
:004 > c.app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
:005 > c.save!
:006 > quit
~/sso-devise-omniauth-provider$ RAILS_ENV=production bundle exec rails server