GitLab
CasdoorはOIDCプロトコルを使用して自己デプロイされたGitLabサーバーにリンクでき、このドキュメントではその方法を示します。
GitLabドキュメントに記載されているように、GitLabはHTTPSを使用するOpenIDプロバイダーのみと動作するため、SSL証明書のセットアップを備えたNGINXリバースプロキシの背後にCasdoorをデプロイするなどしてHTTPSでCasdoorをデプロイする必要があります。 Casdoor自体はデフォルトでHTTP経由でポート8000でのみリッスンし、HTTPS関連の機能はありません。
以下は設定で言及されているいくつかの名前です:
CASDOOR_HOSTNAME
:Casdoorサーバーがデプロイされているドメイン名またはIP、例:https://door.casbin.com
。
GITLAB_HOSTNAME
:GitLabがデプロイされているドメイン名またはIP、例:https://gitlab.com
。
ステップ1:CasdoorとGitLabをデプロイする
まず、CasdoorとGitLabをデプロイする必要があります。
成功したデプロイメントの後、以下を確認する必要があります:
- Casdoorにログインして正常に使用できます。
- Set Casdoorの
origin
値(conf/app.conf)をCASDOOR_HOSTNAME
に設定します。
ステップ2:Casdoorアプリケーションを設定する
- 既存のCasdoorアプリケーションを作成または使用します。
- リダイレクトURLを追加:
http://GITLAB_HOSTNAME/users/auth/openid_connect/callback
。 - 必要なプロバイダーを追加し、他の設定を補完します。
特に、アプリケーション設定ページで2つの値を取得できます:Client ID
とClient secret
(上の画像を参照)、これらを次のステップで使用します。
お気に入りのブラウザを開いて、http://CASDOOR_HOSTNAME
/.well-known/openid-configurationにアクセスすると、CasdoorのOIDC設定が表示されます。
ステップ3:GitLabを設定する
以下の手順に従って設定するか、このドキュメントに従ってカスタム変更を行うことができます(例えば、Omnibusではなくソースコードを使用してGitLabをインストールしている場合など)。
GitLabサーバーで設定ファイルを開きます。
sudo editor /etc/gitlab/gitlab.rb
プロバイダー設定を追加します。 (HOSTNAME URLにはhttpまたはhttpsを含める必要があります)
gitlab_rails['omniauth_providers'] = [
{
name: "openid_connect",
label: "Casdoor", # optional label for the login button, defaults to "Openid Connect"
args: {
name: "openid_connect",
scope: ["openid", "profile", "email"],
response_type: "code",
issuer: "<CASDOOR_HOSTNAME>",
client_auth_method: "query",
discovery: true,
uid_field: "preferred_username",
client_options: {
identifier: "<YOUR CLIENT ID>",
secret: "<YOUR CLIENT SECRET>",
redirect_uri: "<GITLAB_HOSTNAME>/users/auth/openid_connect/callback"
}
}
}
]GitLabサーバーを再起動します。
登録された各ユーザーは
GITLAB_HOSTNAME
/-/profile/accountを開いてCasdoorアカウントを接続できます。完了。 これで、Casdoorを使用して自分のGitLabにログインできます。