Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Reference : [auth], utilisateurs et roles

⟳ : rechargee a chaud ; sans marque : prise au redemarrage. Voir Rechargement.

[auth]

Voir Authentification, Verification des mots de passe.

CleTypeDefautEffet
authtable(obligatoire)l’authentification et les sources de roles
auth.jwt_sentinel_usernamechainejwtle nom SSH qui demande une authentification par JWT (le jeton en mot de passe)
auth.timeout_secsentier5delai d’un appel au service d’autorisation
auth.authz_base_urlURLabsentservice qui traduit des authorities en noms de roles (POST /authz/resolve) ; sans lui, seules les authorities qui sont des noms de roles comptent
auth.roles_filecheminroles.toml a cote, s’il existefichier des [[roles]] et [[backends]] ; son contenu est relu a chaud
auth.users_filecheminusers.toml a cote, s’il existefichier des [[users]] ; son contenu est relu a chaud
auth.hash_workersentierles CPU vus (quota cgroup compris), au plus 2fils qui verifient les mots de passe, simultanement ; chacun tient le m argon2 de son hash ; 1 a 1024 ; CRAFT_FILE_GATE_HASH_WORKERS
auth.hash_queueentier1024verifications qui peuvent attendre un fil ; 1 a 65536 ; CRAFT_FILE_GATE_HASH_QUEUE
auth.hash_per_addressentier4verifications en vol ou en file pour une adresse ; 1 a 66560 ; sans plafond pour une adresse de whitelist_ips de la liste de bans de la porte
auth.users ⟳tableau de tables-[[auth.users]], comme [[users]] ; la racine l’emporte
auth.roles ⟳tableau de tables-[[auth.roles]], comme [[roles]] ; la racine l’emporte
auth.backends ⟳tableau de tables-[[auth.backends]], comme [[backends]] ; la racine l’emporte

[auth.methods]

CleTypeDefautEffet
auth.methodstable-les sources d’identite actives
auth.methods.jwttable-la methode JWT
auth.methods.jwt.enabledbooleentrueaccepter les JWT (SFTP sous le nom sentinel, REST en Bearer) ; exige [auth.jwt]
auth.methods.localtable-le magasin d’utilisateurs local
auth.methods.local.enabledbooleenfalseactiver le magasin local ([[users]] ou users_file)
auth.methods.local.passwordbooleentrueaccepter le mot de passe comme preuve
auth.methods.local.pubkeybooleentrueaccepter la cle publique SSH comme preuve
auth.methods.local.allow_sha512_cryptbooleenfalseaccepter aussi les hashes sha512-crypt, $6$ (migration)
auth.methods.local.allow_bcryptbooleenfalseaccepter aussi les hashes bcrypt, $2a$, $2b$, $2y$ (migration)
auth.methods.local.users_filecheminabsentfichier des utilisateurs, comme auth.users_file
auth.methods.local.max_argon2_memory_kibentierabsent : rien n’est verifiebudget memoire d’une verification, en Kio ; un hash qui le depasse est nomme au chargement ; au moins 1

[auth.jwt]

CleTypeDefautEffet
auth.jwttableabsente : aucun JWT verifiela verification des JWT : une source de cle, et les claims
auth.jwt.secretchaineabsentsecret HMAC (HS256/384/512) ; CRAFT_FILE_GATE_JWT_SECRET ou _FILE
auth.jwt.public_key_filecheminabsentcle publique PEM (RS*, ES*)
auth.jwt.jwks_urlURLabsentpoint JWKS du fournisseur d’identite ; exclusif de secret et public_key_file
auth.jwt.jwks_refresh_interval_secsentier3600periode du rafraichissement JWKS ; au moins 1
auth.jwt.algorithmchaineHS256HS256, HS384, HS512, RS256, RS384, RS512, ES256 ou ES384
auth.jwt.username_pathchaine/subJSON Pointer du nom de l’utilisateur dans le jeton
auth.jwt.authorities_pathchaine/groupsJSON Pointer de ses authorities (roles)
auth.jwt.issuerchaineabsentsi present, iss est exige et compare
auth.jwt.audiencechaineabsentsi present, aud est exige et compare

[[users]]

CleTypeDefautEffet
users ⟳tableau de tables-les utilisateurs locaux ; aussi dans users_file
users[].username ⟳chaine(obligatoire)le nom ; unique
users[].password_hash ⟳chaine(obligatoire)hash argon2 (craft-file-gate hash-password) ; jamais en clair
users[].authorized_keys ⟳liste[]cles publiques SSH, une ligne authorized_keys chacune
users[].authorities ⟳liste[]les noms des roles de l’utilisateur

[[roles]]

Voir Utilisateurs, roles et montages.

CleTypeDefautEffet
roles ⟳tableau de tables(obligatoire), ici ou dans roles_fileles roles ; aussi dans roles_file
roles[].name ⟳chaine(obligatoire)le nom du role, unique ; c’est lui que citent les authorities
roles[].user_key_algorithms ⟳liste[]algorithmes de signature de cle SSH permis en plus aux utilisateurs locaux de ce role, par leur nom (voir Porte SFTP)
roles[].mounts ⟳tableau de tables(obligatoire)les montages du role, [[roles.mounts]] ; au moins un

[[roles.mounts]]

CleTypeDefautEffet
roles[].mounts[].backend ⟳chaine(obligatoire)le backend monte, par le name d’un [[backends]]
roles[].mounts[].mount_path ⟳chemin/ou le montage apparait pour l’utilisateur : absolu, sans ., .., // ni / final
roles[].mounts[].home_dir ⟳chemin/ou le montage commence sur le stockage ; {username} y devient le nom de l’utilisateur
roles[].mounts[].create_home ⟳booleenfalsecreer home_dir a la connexion s’il manque ; backend local seulement, voir Local
roles[].mounts[].max_file_mb ⟳entierabsent : aucun plafondtaille maximale d’un fichier envoye, en Mo (1 048 576 octets) ; 0 : aucun envoi
roles[].mounts[].acl ⟳tableau de tables[] : tout refuseles droits du montage, [[roles.mounts.acl]], voir ACL
roles[].mounts[].hidden_stores ⟳tablecelle du backendecritures atomiques de ce montage, cle par cle (voir Uploads)
roles[].mounts[].hidden_stores.enabled ⟳booleencelui du backendvoir server.hidden_stores.enabled
roles[].mounts[].hidden_stores.prefix ⟳chainecelui du backendvoir server.hidden_stores.prefix
roles[].mounts[].hidden_stores.extension ⟳chainecelle du backendvoir server.hidden_stores.extension

[[roles.mounts.acl]]

CleTypeDefautEffet
roles[].mounts[].acl[].path ⟳chemin(obligatoire)chemin gouverne, relatif au montage
roles[].mounts[].acl[].rights ⟳liste(obligatoire)parmi read, write, list, delete, rename
roles[].mounts[].acl[].recursive ⟳booleenfalsetrue : l’entree gouverne aussi tout ce qui est sous path