LoginSignup
0
0

More than 3 years have passed since last update.

GitlabをJenkinsのOpenAPI Provider として使う

Posted at

GitlabにはOpenAPI Provider としての機能がある

実はあまり知られていないことだと思うのですが、GitlabにはOpenAPI Providerとしての機能を持っています(doorkeeper gem を使っているそうです)

公式にも以下のような記述があり、便利に使えます。

使い道はいろいろあるのですが、よく一緒にインストールされがちなJenkinsとの連携ができると、ユーザー管理も統一できて、なかなか良いのではと思います。

しかしながら、公式の情報だけを見ているとURLの設定とかちょっとよく分からないことが多く、Jenkinsと統合させるのはちょいと手間がかかりそうです。

その辺をスムーズにしてくれるのが、以下に紹介するGitlab Authentication Pluginです。

Gitlab Authentication Plugin で楽々導入

導入方法はここで語るまでもない感じですが、以下のような手順になります。

1. Gitlab側でアプリケーションの追加を行う

まずはGitlab側、Admin Area > Applications から認証済みアプリケーションの一覧に進むことができます。

そこで"New Application"ボタンをクリックし、アプリケーションを追加します。
必要なscopeはapi のみでOKです。

Callback URLは /securityRealm/finishLogin をJenkinsのURL末尾につけたものになります。

ここで生成されたトークンは再度閲覧できないのでメモっておきましょう。

2. Jenkins側でプラグインを導入する

Jenkins側で Gitlab Authentication Plugin を導入します。普通にプラグインマネージャからインストールできるはずです。

インストールが終わると、Jenkinsの管理 > グローバルセキュリティの設定 から Authentication の項目を変更し、Gitlab Authentication Plugin を選択します。設定項目は以下の通りです。

  • Gitlab Web URI: GitlabのトップURL
  • Gitlab API URI: Enterprise版以外は同一のURLでOK
  • ClientID/ClientSecret: Gitlab側でコピーした値をそのまま利用する。

設定がうまくいくと、JenkinsのトップページからGitlabの画面へとリダイレクトされるようになります。そこでログインするとJenkinsからもGitlabのユーザーでログインした状態になります。Jenkins側からユーザー名とグループは参照可能になっていますので、グループごとのセキュリティの設定などは適宜実行していけるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0