Auth0를 OAuth 2.0 인증 제공자로 사용하기
Offering: Self-managed
Auth0 OmniAuth 제공자를 활성화하려면 Auth0 계정과 애플리케이션을 만들어야 합니다.
- Auth0 Console에 로그인합니다. 동일한 링크를 사용하여 계정을 만들 수도 있습니다.
- New App/API를 선택합니다.
- Application Name을 입력합니다. 예를 들어, ‘GitLab’입니다.
- 애플리케이션을 만든 후에는 Quick Start 옵션을 볼 수 있습니다. 이러한 옵션은 무시하고 대신 Settings를 선택합니다.
- 설정 화면 상단에서 Auth0 Console의 Domain, Client ID, Client Secret을 확인할 수 있습니다. 나중에 구성 파일을 완료하기 위해 이 설정을 기록해 두세요. 예를 들어:
- Domain:
test1234.auth0.com
- Client ID:
t6X8L2465bNePWLOvt9yi41i
- Client Secret:
KbveM3nqfjwCbrhaUy_gDu2dss8TIlHIdzlyf33pB7dEK5u_NyQdp65O_o02hXs2
- Domain:
-
Allowed Callback URLs를 입력합니다:
-
http://<your_gitlab_url>/users/auth/auth0/callback
(또는) https://<your_gitlab_url>/users/auth/auth0/callback
-
-
Allowed Origins (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 계정이 없는 사용자에게 즉시 계정 프로비저닝을 가능하게 합니다. -
제공자 구성을 추가합니다:
Linux 패키지 설치의 경우:
gitlab_rails['omniauth_providers'] = [ { name: "auth0", # label: "Provider name", # 로그인 버튼의 선택적 레이블, 기본값 "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', # 로그인 버튼의 선택적 레이블, 기본값 "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 Console 페이지에서 가져온 클라이언트 ID로 교체합니다. -
<your_auth0_client_secret>
를 Auth0 Console 페이지에서 가져온 클라이언트 비밀번호로 교체합니다. -
<your_auth0_domain>
을 Auth0 Console 페이지에서 가져온 도메인으로 교체합니다. - 설치 방법에 따라 GitLab을 재구성하거나 재시작합니다:
- Linux 패키지를 사용하여 설치한 경우,
GitLab 재구성하기. - 자가 컴파일한 설치의 경우,
GitLab 재시작하기.
- Linux 패키지를 사용하여 설치한 경우,
로그인 페이지에는 이제 일반 로그인 양식 아래에 Auth0 아이콘이 표시되어야 합니다. 아이콘을 선택하여 인증 프로세스를 시작합니다. Auth0는 사용자에게 로그인하고 GitLab 애플리케이션을 승인하도록 요청합니다. 사용자가 성공적으로 인증하면 사용자는 GitLab로 돌아와서 로그인됩니다.