見出し画像

AzureADのクレデンシャルでgitlabにログインする

タイトルの通り。
自分の備忘録として書きますー。
結構簡単なのでGitLab運用されている方々はやってみてはどうでしょう?
というかOmniAuthってプロトコルじゃなくてただのライブラリの名前なのね。知らなかったよママン・・・
前提条件として、GitLabをhttpsで運用している状態での設定変更です。

■AzureADの設定


1.アプリの登録
AzureAD→アプリの登録→新規登録をクリック
名前:適当な名前を入力
応答URL:https://your-gitlab-url/users/auth/azure_oauth2/callbackを入力
ローカルで検証する場合はhttpでも良いみたいです。

スクリーンショット 2021-01-21 16.47.24

2.アプリの設定
AzureAD→アプリの登録→先ほど登録したアプリを選択→証明書とシークレット

スクリーンショット 2021-01-21 16.53.02

新しいクライアントシークレットをクリックして期限無期限で作成(期限を決めても大丈夫)
クライアントシークレット値を確認してコピーしておく(下の画像の値のところ)
※ちなみに取得できなくなりますとかメッセージ出てるけど後からでも取得できました。

スクリーンショット 2021-01-21 16.55.42

概要に戻りテナントIDとアプリケーションIDを控えましょー。
下のアプリケーションとディレクトリって書いてるとこね。

スクリーンショット 2021-01-21 16.47.53

3.エンタープライズアプリケーションの設定
エンタープライズアプリケーション→先ほど設定したアプリを選択→ユーザとグループでログインを許可したいユーザを選択
いつものアレなので画像は省略しますw

■GitLabの設定


/etc/gitlab/gitlab.rbを編集します。

## For setting up omniauth
## see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#omniauth-google-twitter-github-login

gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = ['azure_oauth2']
# gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'saml'
gitlab_rails['omniauth_block_auto_created_users'] = false
gitlab_rails['omniauth_auto_link_ldap_user'] = true
# gitlab_rails['omniauth_auto_link_saml_user'] = false
gitlab_rails['omniauth_external_providers'] = ['azure_oauth2']
gitlab_rails['sync_profile_from_provider'] = ['azure_oauth2']
gitlab_rails['sync_profile_attributes'] = ['name', 'email']
gitlab_rails['omniauth_auto_link_user'] = ["azure_oauth2"]
gitlab_rails['omniauth_providers'] = [
  {
    "name" => "azure_oauth2",
    "args" => {
       "client_id" => "<アプリケーションID>",
       "client_secret" => "<クライアントシークレット>",
       "tenant_id" => "<テナントID>",
   }
 }
]

Configの意味はそれぞれ追ってもらうとして大事なところは以下二点


gitlab_rails['omniauth_block_auto_created_users'] = false
ここはデフォルトがTureなのですが、あえてfalseにしてます。
初めてログインするユーザがいた場合GitLab側にユーザができるのですが、そのユーザがブロックされた状態で作成されます。

管理者側でいちいちブロック解除しないといけないのでめんどく(以下略

gitlab_rails['omniauth_auto_link_user'] = ["azure_oauth2"]
ここは既存ユーザのログインに関係があります。
これ入ってないとユーザ側で一度ログインし自分のアカウントの変更画面からazureのマークを押してあげないとログインできません。

画像5



ユーザ側で一度ログインしてプロファイルを変更しなきゃいけないのでめんどくさ(以下略

編集したらgitlab-ctl reconfigureをしてね。
そしてgitlab-ctl statusで確認だよ。
おじさんとの約束だよ。

また、この状態でもローカルログインはできるのでローカルにユーザを作っている場合はパスワード変更したげた方が親切かも・・・

一人一人変えるなんてめんどくさい(略せなかった

この記事が気に入ったらサポートをしてみませんか?