サーバーをGitLab.comと統合する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
GitLab.comからプロジェクトをインポートし、GitLab.comアカウントでGitLabインスタンスにログインします。
GitLab.com OmniAuthプロバイダーを有効にするには、GitLab.comにアプリケーションを登録する必要があります。GitLab.comは、使用するアプリケーションIDとシークレットキーを生成します。
GitLab.comにサインインします。
左側のサイドバーで、自分のアバターを選択します。
プロファイルの編集を選択します。
左側のサイドバーで、アプリケーションを選択します。
新しいアプリケーションを追加に必要な詳細を入力します。
名前: これは何でもかまいません。
<Organization>'s GitLab、<Your Name>'s GitLab、またはその他の説明的なものを検討してください。リダイレクトURI:
# You can also use a non-SSL URL, but you should use SSL URLs. https://your-gitlab.example.com/import/gitlab/callback https://your-gitlab.example.com/users/auth/gitlab/callback
最初のリンクはインポーターに必要で、2番目のリンクは認証に必要です。
以下の場合:
- インポーターを使用する予定がある場合は、スコープをそのままにしておくことができます。
- このアプリケーションを認証にのみ使用する場合は、より最小限のスコープセットを使用することをお勧めします。
read_userで十分です。
アプリケーションを保存を選択します。
アプリケーションIDとシークレットが表示されます。設定を続行するときは、このページを開いたままにしてください。
GitLabサーバーで、設定ファイルを開きます。
Linuxパッケージインストールの場合:
sudo editor /etc/gitlab/gitlab.rb自己コンパイルによるインストールの場合:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml共通設定で、
gitlabをシングルサインオンプロバイダーとして追加します。これにより、既存のGitLabアカウントを持たないユーザーに対して、Just-In-Timeアカウントプロビジョニングが有効になります。プロバイダーの設定を追加します:
LinuxパッケージインストールでGitLab.comに対して認証する場合:
gitlab_rails['omniauth_providers'] = [ { name: "gitlab", # label: "Provider name", # optional label for login button, defaults to "GitLab.com" app_id: "YOUR_APP_ID", app_secret: "YOUR_APP_SECRET", args: { scope: "read_user" } # optional: defaults to the scopes of the application } ]または、別のGitLabインスタンスに対して認証するLinuxパッケージインストールの場合:
gitlab_rails['omniauth_providers'] = [ { name: "gitlab", label: "Provider name", # optional label for login button, defaults to "GitLab.com" app_id: "YOUR_APP_ID", app_secret: "YOUR_APP_SECRET", args: { scope: "read_user", # optional: defaults to the scopes of the application client_options: { site: "https://gitlab.example.com" } } } ]セルフコンパイルインストールでGitLab.comに対して認証する場合:
- { name: 'gitlab', # label: 'Provider name', # optional label for login button, defaults to "GitLab.com" app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET',または、別のGitLabインスタンスに対して認証するためにセルフコンパイルインストールする場合:
- { name: 'gitlab', label: 'Provider name', # optional label for login button, defaults to "GitLab.com" app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET', args: { "client_options": { "site": 'https://gitlab.example.com' } }GitLab 15.1以前は、
siteパラメータに/api/v4サフィックスが必要です。GitLab 15.2以降にアップグレードした後は、このサフィックスを削除することをお勧めします。'YOUR_APP_ID'をGitLab.comアプリケーションページのアプリケーションIDに変更します。'YOUR_APP_SECRET'をGitLab.comアプリケーションページのシークレットに変更します。設定ファイルを保存します。
適切な方法を使用して、これらの変更を実装します:
- Linuxパッケージインストールの場合、GitLabを再設定します。
- 自己コンパイルインストールの場合、GitLabを再起動します。
サインインページに、通常のサインインフォームに続くGitLab.comアイコンが表示されるはずです。そのアイコンを選択すると、認証プロセスが開始されます。GitLab.comは、ユーザーにサインインしてGitLabアプリケーションを認可するように求めます。すべてがうまくいけば、ユーザーはGitLabインスタンスに戻り、サインインされます。
サインイン時のアクセス権限を削減
認証にGitLabインスタンスを使用している場合は、OAuthアプリケーションがサインインに使用されるときに、アクセス権を減らすことができます。
任意のOAuthアプリケーションは、認可パラメータgl_auth_type=loginを使用してアプリケーションの目的をアドバタイズできます。アプリケーションがapiまたはread_apiで設定されている場合、より高い権限は必要ないため、アクセストークンはサインインのためにread_userで発行されます。
GitLab OAuthクライアントは、このパラメータを渡すように設定されていますが、他のアプリケーションも渡すことができます。