バージョン 2.8.92 から、Semaphore は OpenID を介した認証をサポートしています。 この記事では、Ansible Semaphore を設定して GitLab を介してユーザーを認証する方法について説明します。
OpenID を介した認証の設定は、プロバイダー自体、つまり GitLab の設定から始まります。
1. GitLab にアプリケーションを作成する
GitLab を介した認証を有効にするには、GitLab アカウントの設定でアプリケーションを作成する必要があります。
- GitLab アカウントの設定のアプリケーションセクションに移動します: https://gitlab.com/-/profile/applications
- 必要なフィールドを入力します:
- リダイレクト URL:
http://localhost:3000/api/auth/oidc/gitlab/redirect
。 - スコープ:
openid
、profile
、email
。 - アプリケーションを保存をクリックすると、次の画面が表示されます:
- 秘密鍵をどこかにコピーして保存します(Semaphore の設定に必要になります)そして 続ける をクリックします。
- アプリケーションが準備完了です。


2. Semaphore の設定ファイルに OpenID 設定を追加する
ご存知のように、Semaphore の設定は、設定ファイル(通常は config.json
)に JSON 形式で保存されています。
GitLab を OpenID プロバイダーとして使用できるように、次の設定を追加する必要があります:
"oidc_providers": {
"gitlab": {
"display_name": "GitLab",
"provider_url": "https://gitlab.com",
"client_id": "アプリケーション ID",
"client_secret": "秘密",
"redirect_url": "http://localhost:4000/api/auth/oidc/gitlab/redirect"
}
}
3. OpenID/GitLab 認証で Semaphore を起動する
設定ファイルの変更を保存したら、新しい設定で Semaphore を起動または再起動してください。
Semaphore のログインページに新しい「GitLab」ボタンが表示されます。