From 79bee6a2ecdba480e97b9a1a2b1729ec6dac05c6 Mon Sep 17 00:00:00 2001 From: Drew Blessing Date: Tue, 7 Mar 2017 11:58:30 -0600 Subject: [PATCH] Move and update Crowd authentication documentation Current docs did not include information on configuring the app in Crowd. Also, moved the doc to the new administration/auth directory. --- doc/administration/auth/crowd.md | 68 ++++++++++++++++++ .../auth/img/crowd_application.png | Bin 0 -> 55811 bytes doc/integration/crowd.md | 64 +---------------- doc/integration/omniauth.md | 2 +- 4 files changed, 70 insertions(+), 64 deletions(-) create mode 100644 doc/administration/auth/crowd.md create mode 100644 doc/administration/auth/img/crowd_application.png diff --git a/doc/administration/auth/crowd.md b/doc/administration/auth/crowd.md new file mode 100644 index 00000000000..2c289c67a6d --- /dev/null +++ b/doc/administration/auth/crowd.md @@ -0,0 +1,68 @@ +# Atlassian Crowd OmniAuth Provider + +## Configure a new Crowd application + +1. Choose 'Applications' in the top menu, then 'Add application'. +1. Go through the 'Add application' steps, entering the appropriate details. + The screenshot below shows an example configuration. + + ![Example Crowd application configuration](img/crowd_application.png) + +## Configure GitLab + +1. On your GitLab server, open the configuration file. + + **Omnibus:** + + ```sh + sudo editor /etc/gitlab/gitlab.rb + ``` + + **Source:** + + ```sh + cd /home/git/gitlab + + sudo -u git -H editor config/gitlab.yml + ``` + +1. See [Initial OmniAuth Configuration](../../integration/omniauth.md#initial-omniauth-configuration) + for initial settings. + +1. Add the provider configuration: + + **Omnibus:** + + ```ruby + gitlab_rails['omniauth_providers'] = [ + { + "name" => "crowd", + "args" => { + "crowd_server_url" => "CROWD_SERVER_URL", + "application_name" => "YOUR_APP_NAME", + "application_password" => "YOUR_APP_PASSWORD" + } + } + ] + ``` + + **Source:** + + ``` + - { name: 'crowd', + args: { + crowd_server_url: 'CROWD_SERVER_URL', + application_name: 'YOUR_APP_NAME', + application_password: 'YOUR_APP_PASSWORD' } } + ``` +1. Change `CROWD_SERVER_URL` to the URL of your Crowd server. +1. Change `YOUR_APP_NAME` to the application name from Crowd applications page. +1. Change `YOUR_APP_PASSWORD` to the application password you've set. +1. Save the configuration file. +1. [Reconfigure][] or [restart][] for the changes to take effect if you + installed GitLab via Omnibus or from source respectively. + +On the sign in page there should now be a Crowd tab in the sign in form. + +[reconfigure]: ../restart_gitlab.md#omnibus-gitlab-reconfigure +[restart]: ../restart_gitlab.md#installations-from-source diff --git a/doc/administration/auth/img/crowd_application.png b/doc/administration/auth/img/crowd_application.png new file mode 100644 index 0000000000000000000000000000000000000000..7deea9dac8e3abe3fe886f86a5d3c04929bac823 GIT binary patch literal 55811 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 literal 0 HcmV?d00001 diff --git a/doc/integration/crowd.md b/doc/integration/crowd.md index f8370cd349e..2bc526dc3db 100644 --- a/doc/integration/crowd.md +++ b/doc/integration/crowd.md @@ -1,63 +1 @@ -# Crowd OmniAuth Provider - -To enable the Crowd OmniAuth provider you must register your application with Crowd. To configure Crowd integration you need an application name and password. - -1. On your GitLab server, open the configuration file. - - For omnibus package: - - ```sh - sudo editor /etc/gitlab/gitlab.rb - ``` - - For installations from source: - - ```sh - cd /home/git/gitlab - - sudo -u git -H editor config/gitlab.yml - ``` - -1. See [Initial OmniAuth Configuration](omniauth.md#initial-omniauth-configuration) for initial settings. - -1. Add the provider configuration: - - For omnibus package: - - ```ruby - gitlab_rails['omniauth_providers'] = [ - { - "name" => "crowd", - "args" => { - "crowd_server_url" => "CROWD", - "application_name" => "YOUR_APP_NAME", - "application_password" => "YOUR_APP_PASSWORD" - } - } - ] - ``` - - For installations from source: - - ``` - - { name: 'crowd', - args: { - crowd_server_url: 'CROWD SERVER URL', - application_name: 'YOUR_APP_NAME', - application_password: 'YOUR_APP_PASSWORD' } } - ``` - -1. Change 'YOUR_APP_NAME' to the application name from Crowd applications page. - -1. Change 'YOUR_APP_PASSWORD' to the application password you've set. - -1. Save the configuration file. - -1. [Reconfigure][] or [restart GitLab][] for the changes to take effect if you - installed GitLab via Omnibus or from source respectively. - -On the sign in page there should now be a Crowd tab in the sign in form. - -[reconfigure]: ../administration/restart_gitlab.md#omnibus-gitlab-reconfigure -[restart GitLab]: ../administration/restart_gitlab.md#installations-from-source - +This document was moved to [`administration/auth/crowd`](../administration/auth/crowd.md). diff --git a/doc/integration/omniauth.md b/doc/integration/omniauth.md index 47e20d7566a..6c11f46a70a 100644 --- a/doc/integration/omniauth.md +++ b/doc/integration/omniauth.md @@ -27,7 +27,7 @@ contains some settings that are common for all providers. - [Twitter](twitter.md) - [Shibboleth](shibboleth.md) - [SAML](saml.md) -- [Crowd](crowd.md) +- [Crowd](../administration/auth/crowd.md) - [Azure](azure.md) - [Auth0](auth0.md) - [Authentiq](../administration/auth/authentiq.md)