Auth0를 OAuth 2.0 인증 제공자로 사용하기
Tier: Free, Premium, Ultimate
Offering: Self-Managed
Auth0 OmniAuth 제공자를 활성화하려면 Auth0 계정 및 응용 프로그램을 만들어야 합니다.
- Auth0 콘솔에 로그인합니다. 같은 링크를 통해 계정을 만들 수도 있습니다.
- 새 앱/API를 선택합니다.
- 응용 프로그램 이름을 입력합니다. 예를 들어 ‘GitLab’.
- 응용 프로그램을 만든 후 빠른 시작 옵션이 표시됩니다. 이 옵션을 무시하고 대신 설정을 선택합니다.
- 설정 화면 상단에 Auth0 콘솔에 있는 도메인, 클라이언트 ID, 클라이언트 비밀이 표시됩니다. 이 설정을 나중에 구성 파일을 완료하기 위해 참고하세요. 예를 들어:
- 도메인:
test1234.auth0.com
- 클라이언트 ID:
t6X8L2465bNePWLOvt9yi41i
- 클라이언트 비밀:
KbveM3nqfjwCbrhaUy_gDu2dss8TIlHIdzlyf33pB7dEK5u_NyQdp65O_o02hXs2
- 도메인:
-
허용된 콜백 URL을 입력합니다:
-
http://<your_gitlab_url>/users/auth/auth0/callback
(또는) https://<your_gitlab_url>/users/auth/auth0/callback
-
-
허용된 원본(CORS)을 입력합니다:
-
http://<your_gitlab_url>
(또는) https://<your_gitlab_url>
-
-
GitLab 서버에서 구성 파일을 엽니다.
Linux 패키지 설치의 경우:
sudo editor /etc/gitlab/gitlab.rb
직접 컴파일한 경우:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
-
일반 설정을 구성하여
auth0
를 단일 사인온 제공자로 추가합니다. 이를 통해 기존 GitLab 계정이 없는 사용자를 위해 JIT(Just-In-Time) 계정 프로비저닝이 가능해집니다. -
제공자 구성을 추가합니다:
Linux 패키지 설치의 경우:
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" } } ]
직접 컴파일한 경우:
- { 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' } }
-
<your_auth0_client_id>
를 Auth0 콘솔 페이지에서 클라이언트 ID로 바꿉니다. -
<your_auth0_client_secret>
를 Auth0 콘솔 페이지에서 클라이언트 비밀로 바꿉니다. -
<your_auth0_domain>
을 Auth0 콘솔 페이지에서 도메인으로 바꿉니다. - 설치 방법에 따라 GitLab을 다시 구성하거나 다시 시작합니다:
- Linux 패키지를 사용하여 설치한 경우, GitLab을 다시 구성합니다.
- 직접 컴파일하여 설치한 경우, GitLab을 재시작합니다.
로그인 페이지에서 일반 로그인 양식 아래에 Auth0 아이콘이 표시됩니다. 인증 프로세스를 시작하려면 아이콘을 선택합니다. Auth0는 사용자에게 GitLab 애플리케이션에 로그인하고 인가할 것을 요청합니다. 사용자가 성공적으로 인증하면 GitLab로 돌아가 로그인됩니다.