8
votes

Utilisation de gitlab derrière Nginx activé basic_auth?

J'ai installé avec succès Gitlab pour la gestion des référentiels privés (c'est assez génial!).

Le problème que je reçois est par défaut, la connexion GITLAB est présentée lorsque quelqu'un frappe mon sous-domaine. Je voudrais protéger toute la zone avec une couche de base_auth avant que l'utilisateur ne reçoit l'écran de connexion GITLAB. Malheureusement, cela rompt ma capacité à pousser / tirer de gitlab lorsqu'il est activé. P>

My Nginx Config Pour activer BASIC_AUTH: P>

  auth_basic            "Restricted";
  auth_basic_user_file  htpasswd;


1 commentaires

Pour le chercheur: Si vous accédez à vos référentiels uniquement via SSH et que vous souhaitez protéger Gitlab avec HTTP Basic Auth, la réponse de Nicolas Badia est ce que vous recherchez.


3 Réponses :


2
votes

genre de hack en ce moment, mais donne ceci est un coup de feu.

Modifiez votre configuration de site NGinx pour ajouter / modifier les emplacements suivants P>

location ^~ /api/v3/internal/allowed {
    proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
    proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
    proxy_redirect     off;

    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_set_header   Host              $http_host;
    proxy_set_header   X-Real-IP         $remote_addr;

    proxy_pass http://gitlab;}

location / {
    auth_basic "Gitlab Restricted Access";
    auth_basic_user_file  /home/git/gitlab/htpasswd.users;
    # serve static files from defined root folder;.
    # @gitlab is a named location for the upstream fallback, see below
    try_files $uri $uri/index.html $uri.html @gitlab;
}


0 commentaires

0
votes

Votre problème est que vous souhaitez définir une restriction de mot de passe pour l'accès public à gitlab, mais laissez Gitlab-shell accéder à l'instance Gitlab locale sans restriction.

Vous pouvez avoir 2 configurations Nginx en fonction de l'interface IP. Modifier la ligne Écouter 0.0.0.0:80 default_server to Écouter 127.0.0.1:80 Default_server .

https: // github. com / gitlabhq / gitlabhq / blob / v7.7.2 / lib / support / nginx / gitlab # L37-38


0 commentaires

8
votes

ajoutez ceci au /etc/gitlab/gitlab.rb : xxx

et exécuté gitlab-ctl reconfigure


1 commentaires

Pour ajouter à cette réponse, voici les documents pertinents de nginx ( docs.nginx.com/nginx/admin-guide/security-controls/.../a>) et gitlab ( docs.gitlab.com/omnibus/settings/... ).