バージョン 2.8.92 から、Semaphore は OpenID による認証をサポートしています。 この記事では、Ansible Semaphore を GitLab 経由でユーザー認証する方法を解説します。
OpenID による認証の設定は、まずプロバイダー自体(今回は GitLab)の設定から始まります。
1. GitLab でアプリケーションを作成する
GitLab 経由の認証を有効にするには、GitLab アカウントの設定でアプリケーションを作成する必要があります。
- GitLab アカウントの設定内にある Applications セクションに移動してください: https://gitlab.com/-/profile/applications
- 必要項目を入力します:
- Redirect URL:
http://localhost:3000/api/auth/oidc/gitlab/redirect
. - Scopes:
openid
,profile
,email
. - Save application をクリックすると、次の画面が表示されます:
- シークレットキーをどこかにコピーして保存してください(Semaphore の設定に必要になります)。その後 Continue をクリックします。
- アプリケーションの準備完了。


2. OpenID 設定を Semaphore の設定ファイルに追加する
ご存知の通り、Semaphore の設定は JSON 形式で設定ファイル(通常は config.json
)に保存されています。
以下の設定を追加して、Semaphore が 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 を新しい設定で起動または再起動してください。
ログインページに新しい「GitLab」ボタンが表示されます。