(((meta (@ (content . "Creating an user zettel") (name . "title"))) (meta (@ (content . "manual") (name . "role"))) (meta (@ (content . "#authentication #configuration #manual #security #zettelstore") (name . "tags"))) (meta (@ (content . "zmk") (name . "syntax"))) (meta (@ (content . "00001004050000 00001005090000 00001006020000 00001010000000 00001010040100 00001010040400 00001010070600 00001012050200 00001012921200 00001017000000 00001018000000") (name . "back"))) (meta (@ (content . "00001004020000 00001004020200 00001004050000 00001004051400 00001005090000 00001006020000 00001010000000 00001010040100 00001010040400 00001010070300 00001010070600 00001012050200 00001012921200 00001017000000 00001018000000") (name . "backward"))) (meta (@ (content . "1") (name . "box-number"))) (meta (@ (content . "(c) 2020-present by Detlef Stern ") (name . "copyright"))) (meta (@ (content . "20210126175322") (name . "created"))) (meta (@ (content . "00001004020000 00001004020200 00001004051400 00001006050000 00001010070300") (name . "forward"))) (meta (@ (content . "en") (name . "lang"))) (meta (@ (content . "EUPL-1.2-or-later") (name . "license"))) (meta (@ (content . "20221205160251") (name . "modified"))) (meta (@ (content . "20221205160251") (name . "published"))) (meta (@ (content . "public") (name . "visibility")))) (p "All data to be used for authenticating a user is store in a special zettel called " (@L (@H "“") "user zettel" (@H "”")) "." (br) "A user zettel must have set the following two metadata fields:") (dl (dt (kbd "user-id") " (" (@L (@H "“") "user identification" (@H "”")) ")") (dd (p "The unique identification to be specified for authentication.")) (dt (kbd "credential")) (dd (p "A hashed password as generated by the " (a (@ (href . "00001004051400")) (code (@ (class . "language-sh")) "zettelstore password")) " command."))) (p "The title of the zettel typically specifies the real name of the user.") (p "The following metadata elements are optional:") (dl (dt (kbd "user-role")) (dd (p "Associate the user with some basic privileges, e.g. a " (a (@ (href . "00001010070300")) "user role")))) (p "A user zettel may additionally contain metadata that " (a (@ (href . "00001004020200")) "overwrites corresponding values") " of the " (a (@ (href . "00001004020000")) "runtime configuration") ".") (p "A user zettel can only be created by the owner of the Zettelstore.") (p "The owner should execute the following steps to create a new user zettel:") (ol (li (p "Create a new zettel.")) (li (p "Save the zettel to get a " (a (@ (href . "00001006050000")) "identifier") " for this zettel.")) (li (p "Choose a unique identification for the user.") (ul (li "If the identifier is not unique, authentication will not work for this user."))) (li (p "Execute the " (a (@ (href . "00001004051400")) (code "zettelstore password")) " command.") (ul (li "You have to specify the user identification and the zettel identifier") (li "If you should not know the password of the new user, send her/him the user identification and the user zettel identifier, so that the person can create the hashed password herself."))) (li (p "Edit the user zettel and add the hashed password under the meta key " (kbd "credential") " and the user identification under the key " (kbd "user-id") "."))))