# オプション の変更 $ sudoedit /etc/gitlab/gitlab.rb gitlab_rails['omniauth_enabled'] = true // この Gitlab にアカウントがなかった場合、アカウントの自動生成を許可するプロバイダを指定 gitlab_rails['omniauth_allow_single_sign_on'] = ['saml'] // 調べたけれどドキュメントが見つからず詳細不明 gitlab_rails['omniauth_sync_email_from_provider'] = 'saml' // プロフィールを同期するプロバイダを指定 gitlab_rails['omniauth_sync_profile_from_provider'] = ['saml'] // 同期するプロフィールの情報 gitlab_rails['omniauth_sync_profile_attributes'] = ['email'] // 自動サインインを許可するプロバイダ gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'saml' // true にすると自動生成されたアカウントのログインをブロックする(管理者によるブロック解除が必要) gitlab_rails['omniauth_block_auto_created_users'] = false // LDAP / ActiveDirectory 統合を無効 gitlab_rails['omniauth_auto_link_ldap_user'] = false // プロバイダのアカウントのメールアドレスが、Gitlab の既存アカウントと一致した場合、自動的にリンクさせる gitlab_rails['omniauth_auto_link_saml_user'] = true // 指定プロバイダーを外部アカウントとして扱い、内部プロジェクトにアクセスできなくする # gitlab_rails['omniauth_external_providers'] = ['saml'] // 2要素認証をパスするプロバイダを指定、saml には適用されない # gitlab_rails['omniauth_allow_bypass_two_factor'] = ['google_oauth2'] gitlab_rails['omniauth_providers'] = [ { 'label' => 'G Suite', 'name' => 'saml', 'args' => { 'assertion_consumer_service_url': 'https://gitlab.example.com/users/auth/saml/callback', 'idp_cert_fingerprint': 'XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX', 'idp_sso_target_url': 'https://accounts.google.com/o/saml2/idp?idpid=XXXXXXXX', 'issuer': 'https://gitlab.example.com', 'name_identifier_format': 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress', 'attribute_statements': { 'email': ['emailAddress'] } }, } ] # 反映 $ sudo gitlab-ctl reconfigure
サイトにアクセスして【G Suite】ボタンから Google アカウントでログインできることを確認する。
上記が確認できたあとで、以下を設定することで、指定プロバイダにログイン中ならば、自動的に Gitlab にログインできるようになる。
# オプション の変更 $ sudoedit /etc/gitlab/gitlab.rb gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'saml' # 反映 $ sudo gitlab-ctl reconfigure