2 votes

Autorisations de Radicale

J'ai créé une instance de Radicale avec Nginx effectuant une authentification de base, mais à chaque fois que je me connecte, il me dit que je n'ai pas la permission d'accéder à la collection. Est-ce que quelqu'un peut m'aider à trouver le problème?

Configuration de Radicale

# -*- mode: conf -*-
# vim:ft=cfg

# Fichier de configuration pour Radicale - Un serveur de calendrier simple
#

# Placez-le dans /etc/radicale/config (global)
# ou ~/.config/radicale/config (utilisateur)
#
# Les valeurs actuelles sont les valeurs par défaut

[server]

# Noms d'hôte du serveur CalDAV séparés par une virgule
# Syntaxe IPv4 : adresse:port
# Syntaxe IPv6 : [adresse]:port
# Par exemple : 0.0.0.0:9999, [::]:9999
# Les adresses IPv6 sont configurées pour autoriser uniquement les connexions IPv6
#hosts = 0.0.0.0:5232
hosts = 127.0.0.1:5232

# Indicateur de démon
#daemon = False
daemon = True

# Fichier stockant le PID en mode démon
#pid =

# Indicateur SSL, activer le protocole HTTPS
#ssl = False

# Chemin du certificat SSL
#certificate = /etc/apache2/ssl/server.crt
certificate = /etc/pki/tls/certs/localhost.crt

# Clé privée SSL
#key = /etc/apache2/ssl/server.key

# Protocole SSL utilisé. Voir le module ssl de Python pour les valeurs disponibles
#protocol = PROTOCOL_SSLv23

# Chiffres disponibles. Voir le module ssl de Python pour les chiffres disponibles
#ciphers =

# Résolution du DNS inverse pour résoudre l'adresse client dans les journaux
#dns_lookup = True

# URL racine de Radicale (commençant et se terminant par une barre oblique)
#custom_handler =

# Fichier pour la gestion des droits from_file
#file = ~/.config/radicale/rights
file = /etc/radicale/rights

[storage]

# Backend de stockage
# -------
# AVERTISSEMENT : SEUL "filesystem" EST DOCUMENTÉ ET TESTÉ,
#          LES AUTRES BACKENDS NE SONT PAS PRÊTS POUR LA PRODUCTION.
# -------
# Valeur : filesystem | multifilesystem | database | custom
#type = filesystem

# Gestionnaire de stockage personnalisé
#custom_handler =

# Dossier pour stocker les collections locales, créé s'il n'est pas présent
#filesystem_folder = ~/.config/radicale/collections
filesystem_folder = /var/lib/radicale/collections

# URL de la base de données pour SQLAlchemy
# dialect+driver://user:password@host/dbname[?key=value..]
# Par exemple : sqlite:///var/db/radicale.db, postgresql://user:password@localhost/radicale
# Voir http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine
#database_url =

[logging]

# Fichier de configuration des journaux
# Si aucune configuration n'est donnée, des informations simples sont imprimées sur la sortie standard

# Pour plus d'informations sur la syntaxe du fichier de configuration, voir:
# http://docs.python.org/library/logging.config.html
#config = /etc/radicale/logging
# Définir le niveau de journalisation par défaut sur debug
#debug = False
# Stocker toutes les variables d'environnement (y compris celles définies dans le shell)
#full_environment = False

[headers]

# En-têtes HTTP supplémentaires
#Access-Control-Allow-Origin = *

Fichier de droits

[owner-write]
user: .+
collection: ^%(login)s(/.+)?$
permission: rw

Nginx

server {
        listen 80 default;

        location / {
                return 301 https://$host$request_uri;
        }

        include /etc/nginx/servers.conf.d/*.conf;
}

server {
        listen 443 ssl default http2;

        ssl_certificate /etc/nginx/ssl/fullchain.pem;
        ssl_certificate_key /etc/nginx/ssl/privkey.pem;

        location / {
                try_files $uri @radicale;
        }

        location @radicale {
                auth_basic "Login";
                auth_basic_user_file /etc/nginx/auth/radicale;
                proxy_pass http://127.0.0.1:5232;
                proxy_buffering off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
        }
}

1voto

exbctel Points 91

J'ai eu le même problème et je l'ai résolu en supprimant le proxy_set_header Host $host; et le proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; de la configuration nginx.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X