gitlab-org--gitlab-foss/doc/integration/auth0.md

3.4 KiB

stage group info
Manage Authentication and Authorization To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments

Auth0 OmniAuth Provider (FREE SELF)

To enable the Auth0 OmniAuth provider, you must create an Auth0 account, and an application.

  1. Sign in to the Auth0 Console. You can also create an account using the same link.

  2. Select New App/API.

  3. Enter the Application Name. For example, 'GitLab'.

  4. After creating the application, you should see the Quick Start options. Disregard these options and select Settings instead.

  5. At the top of the Settings screen, you should see your Domain, Client ID, and Client Secret in the Auth0 Console. Note these settings to complete the configuration file later. For example:

    • Domain: test1234.auth0.com
    • Client ID: t6X8L2465bNePWLOvt9yi41i
    • Client Secret: KbveM3nqfjwCbrhaUy_gDu2dss8TIlHIdzlyf33pB7dEK5u_NyQdp65O_o02hXs2
  6. Fill in the Allowed Callback URLs:

    • http://<your_gitlab_url>/users/auth/auth0/callback (or)
    • https://<your_gitlab_url>/users/auth/auth0/callback
  7. Fill in the Allowed Origins (CORS):

    • http://<your_gitlab_url> (or)
    • https://<your_gitlab_url>
  8. On your GitLab server, open the configuration file.

    For Omnibus GitLab:

    sudo editor /etc/gitlab/gitlab.rb
    

    For installations from source:

    cd /home/git/gitlab
    sudo -u git -H editor config/gitlab.yml
    
  9. Read Configure initial settings for initial settings.

  10. Add the provider configuration:

    For Omnibus GitLab:

    gitlab_rails['omniauth_providers'] = [
      {
        name: "auth0",
        # label: "Provider name", # optional label for login button, defaults to "Auth0"
        args: {
          client_id: "<your_auth0_client_id>",
          client_secret: "<your_auth0_client_secret>",
          domain: "<your_auth0_domain>",
          scope: "openid profile email"
        }
      }
    ]
    

    For installations from source:

    - { name: 'auth0',
        # label: 'Provider name', # optional label for login button, defaults to "Auth0"
        args: {
          client_id: '<your_auth0_client_id>',
          client_secret: '<your_auth0_client_secret>',
          domain: '<your_auth0_domain>',
          scope: 'openid profile email' }
      }
    
  11. Replace <your_auth0_client_id> with the client ID from the Auth0 Console page.

  12. Replace <your_auth0_client_secret> with the client secret from the Auth0 Console page.

  13. Replace <your_auth0_client_secret> with the domain from the Auth0 Console page.

  14. Reconfigure or restart GitLab, depending on your installation method:

On the sign-in page there should now be an Auth0 icon below the regular sign-in form. Select the icon to begin the authentication process. Auth0 asks the user to sign in and authorize the GitLab application. If the user authenticates successfully, the user is returned to GitLab and signed in.