TOTP Manager part (#1359)
This commit is contained in:
parent
344b9db804
commit
2d58b3f9f6
|
@ -129,7 +129,7 @@
|
||||||
.\" ========================================================================
|
.\" ========================================================================
|
||||||
.\"
|
.\"
|
||||||
.IX Title "llng-fastcgi-server 1"
|
.IX Title "llng-fastcgi-server 1"
|
||||||
.TH llng-fastcgi-server 1 "2017-11-11" "perl v5.26.1" "User Contributed Perl Documentation"
|
.TH llng-fastcgi-server 1 "2018-02-18" "perl v5.26.1" "User Contributed Perl Documentation"
|
||||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||||
.\" way too many mistakes in technical documents.
|
.\" way too many mistakes in technical documents.
|
||||||
.if n .ad l
|
.if n .ad l
|
||||||
|
@ -165,6 +165,8 @@ Each parameter can be set by an option or a environment variable.
|
||||||
.IX Item "--engine -e ($ENV{ENGINE}): Plack::Handler engine, default to FCGI"
|
.IX Item "--engine -e ($ENV{ENGINE}): Plack::Handler engine, default to FCGI"
|
||||||
.IP "\-\-socket \-s ($ENV{\s-1SOCKET\s0}): Unix socket" 4
|
.IP "\-\-socket \-s ($ENV{\s-1SOCKET\s0}): Unix socket" 4
|
||||||
.IX Item "--socket -s ($ENV{SOCKET}): Unix socket"
|
.IX Item "--socket -s ($ENV{SOCKET}): Unix socket"
|
||||||
|
.IP "\-\-listen \-l ($ENV{\s-1LISTEN\s0}): Listening address (\s-1HOST:PORT, :PORT,\s0 or \s-1PATH\s0)" 4
|
||||||
|
.IX Item "--listen -l ($ENV{LISTEN}): Listening address (HOST:PORT, :PORT, or PATH)"
|
||||||
.IP "\-\-customFunctionsFile \-f ($ENV{\s-1CUSTOM_FUNCTIONS_FILE\s0}): file to load for custom functions" 4
|
.IP "\-\-customFunctionsFile \-f ($ENV{\s-1CUSTOM_FUNCTIONS_FILE\s0}): file to load for custom functions" 4
|
||||||
.IX Item "--customFunctionsFile -f ($ENV{CUSTOM_FUNCTIONS_FILE}): file to load for custom functions"
|
.IX Item "--customFunctionsFile -f ($ENV{CUSTOM_FUNCTIONS_FILE}): file to load for custom functions"
|
||||||
.ie n .IP "\-\-plackOptions: other options to pass to Plack. This multi-valued parameter must have ""key=value"" values." 4
|
.ie n .IP "\-\-plackOptions: other options to pass to Plack. This multi-valued parameter must have ""key=value"" values." 4
|
||||||
|
|
|
@ -242,6 +242,9 @@ sub defaultValues {
|
||||||
'timeout' => 72000,
|
'timeout' => 72000,
|
||||||
'timeoutActivity' => 0,
|
'timeoutActivity' => 0,
|
||||||
'timeoutActivityInterval' => 60,
|
'timeoutActivityInterval' => 60,
|
||||||
|
'totp2fActivation' => 0,
|
||||||
|
'totp2fInterval' => 30,
|
||||||
|
'totp2fRange' => 1,
|
||||||
'trustedProxies' => '',
|
'trustedProxies' => '',
|
||||||
'twitterAuthnLevel' => 1,
|
'twitterAuthnLevel' => 1,
|
||||||
'u2fActivation' => 0,
|
'u2fActivation' => 0,
|
||||||
|
|
|
@ -3123,6 +3123,25 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-
|
||||||
'default' => 0,
|
'default' => 0,
|
||||||
'type' => 'bool'
|
'type' => 'bool'
|
||||||
},
|
},
|
||||||
|
'totp2fActivation' => {
|
||||||
|
'default' => 0,
|
||||||
|
'type' => 'boolOrExpr'
|
||||||
|
},
|
||||||
|
'totp2fAuthnLevel' => {
|
||||||
|
'type' => 'int'
|
||||||
|
},
|
||||||
|
'totp2fInterval' => {
|
||||||
|
'default' => 30,
|
||||||
|
'type' => 'int'
|
||||||
|
},
|
||||||
|
'totp2fRange' => {
|
||||||
|
'default' => 1,
|
||||||
|
'type' => 'int'
|
||||||
|
},
|
||||||
|
'totpSelfRegistration' => {
|
||||||
|
'default' => 0,
|
||||||
|
'type' => 'bool'
|
||||||
|
},
|
||||||
'trustedDomains' => {
|
'trustedDomains' => {
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
},
|
},
|
||||||
|
|
|
@ -106,8 +106,8 @@ sub types {
|
||||||
select => {
|
select => {
|
||||||
test => sub {
|
test => sub {
|
||||||
my $test =
|
my $test =
|
||||||
grep (
|
grep ( { $_ eq $_[0] }
|
||||||
{ $_ eq $_[0] } map ( { $_->{k} } @{ $_[2]->{select} } ) );
|
map ( { $_->{k} } @{ $_[2]->{select} } ) );
|
||||||
return $test
|
return $test
|
||||||
? 1
|
? 1
|
||||||
: ( 1, "Invalid value '$_[0]' for this select" );
|
: ( 1, "Invalid value '$_[0]' for this select" );
|
||||||
|
@ -1030,6 +1030,33 @@ sub attributes {
|
||||||
'Authentication level for users authentified by password+U2F'
|
'Authentication level for users authentified by password+U2F'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
# TOTP second factor
|
||||||
|
totp2fActivation => {
|
||||||
|
type => 'boolOrExpr',
|
||||||
|
default => 0,
|
||||||
|
documentation => 'TOTP activation',
|
||||||
|
},
|
||||||
|
totpSelfRegistration => {
|
||||||
|
type => 'bool',
|
||||||
|
default => 0,
|
||||||
|
documentation => 'TOTP self registration activation',
|
||||||
|
},
|
||||||
|
totp2fAuthnLevel => {
|
||||||
|
type => 'int',
|
||||||
|
documentation =>
|
||||||
|
'Authentication level for users authentified by password+TOTP'
|
||||||
|
},
|
||||||
|
totp2fInterval => {
|
||||||
|
type => 'int',
|
||||||
|
default => 30,
|
||||||
|
documentation => 'TOTP interval',
|
||||||
|
},
|
||||||
|
totp2fRange => {
|
||||||
|
type => 'int',
|
||||||
|
default => 1,
|
||||||
|
documentation => 'TOTP range (number of interval to test)',
|
||||||
|
},
|
||||||
|
|
||||||
# External second factor
|
# External second factor
|
||||||
ext2fActivation => {
|
ext2fActivation => {
|
||||||
type => 'boolOrExpr',
|
type => 'boolOrExpr',
|
||||||
|
@ -1180,7 +1207,7 @@ sub attributes {
|
||||||
grep { $_ =~ /Undefined subroutine/ ? () : $_ }
|
grep { $_ =~ /Undefined subroutine/ ? () : $_ }
|
||||||
split( /\n/, $@ ) );
|
split( /\n/, $@ ) );
|
||||||
return $err ? ( 1, "__badExpression__: $err" ) : (1);
|
return $err ? ( 1, "__badExpression__: $err" ) : (1);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
documentation => 'Virtualhost headers',
|
documentation => 'Virtualhost headers',
|
||||||
},
|
},
|
||||||
|
@ -2167,8 +2194,9 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?:
|
||||||
radiusServer => { type => 'text', },
|
radiusServer => { type => 'text', },
|
||||||
|
|
||||||
# REST
|
# REST
|
||||||
restAuthUrl => { type => 'url' },
|
restAuthUrl => { type => 'url' },
|
||||||
restUserDBUrl => { type => 'url' },
|
restUserDBUrl => { type => 'url' },
|
||||||
|
|
||||||
# TODO: add restMailDBUrl
|
# TODO: add restMailDBUrl
|
||||||
restPwdConfirmUrl => { type => 'url' },
|
restPwdConfirmUrl => { type => 'url' },
|
||||||
restPwdModifyUrl => { type => 'url' },
|
restPwdModifyUrl => { type => 'url' },
|
||||||
|
@ -2290,14 +2318,14 @@ m{^(?:ldapi://[^/]*/?|\w[\w\-\.]*(?::\d{1,5})?|ldap(?:s|\+tls)?://\w[\w\-\.]*(?:
|
||||||
default => 2,
|
default => 2,
|
||||||
documentation => 'DBI authentication level',
|
documentation => 'DBI authentication level',
|
||||||
},
|
},
|
||||||
dbiAuthChain => { type => 'text', },
|
dbiAuthChain => { type => 'text', },
|
||||||
dbiAuthUser => { type => 'text', },
|
dbiAuthUser => { type => 'text', },
|
||||||
dbiAuthPassword => { type => 'password', },
|
dbiAuthPassword => { type => 'password', },
|
||||||
dbiUserChain => { type => 'text', },
|
dbiUserChain => { type => 'text', },
|
||||||
dbiUserUser => { type => 'text', },
|
dbiUserUser => { type => 'text', },
|
||||||
dbiUserPassword => { type => 'password', },
|
dbiUserPassword => { type => 'password', },
|
||||||
dbiAuthTable => { type => 'text', },
|
dbiAuthTable => { type => 'text', },
|
||||||
dbiUserTable => { type => 'text', },
|
dbiUserTable => { type => 'text', },
|
||||||
|
|
||||||
# TODO: add dbiMailCol
|
# TODO: add dbiMailCol
|
||||||
dbiAuthLoginCol => { type => 'text', },
|
dbiAuthLoginCol => { type => 'text', },
|
||||||
|
|
|
@ -209,7 +209,10 @@ sub tree {
|
||||||
{
|
{
|
||||||
title => 'kerberosParams',
|
title => 'kerberosParams',
|
||||||
help => 'authkerberos.html',
|
help => 'authkerberos.html',
|
||||||
nodes => [ 'krbKeytab', 'krbByJs', 'krbAuthnLevel', 'krbRemoveDomain' ]
|
nodes => [
|
||||||
|
'krbKeytab', 'krbByJs',
|
||||||
|
'krbAuthnLevel', 'krbRemoveDomain'
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title => 'ldapParams',
|
title => 'ldapParams',
|
||||||
|
@ -641,6 +644,11 @@ sub tree {
|
||||||
help => 'autoSignin.html',
|
help => 'autoSignin.html',
|
||||||
nodes => ['autoSigninRules'],
|
nodes => ['autoSigninRules'],
|
||||||
},
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title => 'secondFactors',
|
||||||
|
nodes => [
|
||||||
{
|
{
|
||||||
title => 'u2f',
|
title => 'u2f',
|
||||||
help => 'u2f.html',
|
help => 'u2f.html',
|
||||||
|
@ -650,6 +658,16 @@ sub tree {
|
||||||
'u2fAuthnLevel'
|
'u2fAuthnLevel'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title => 'totp',
|
||||||
|
help => 'totp.html',
|
||||||
|
form => 'simpleInputContainer',
|
||||||
|
nodes => [
|
||||||
|
'totp2fActivation', 'totpSelfRegistration',
|
||||||
|
'totp2fAuthnLevel', 'totp2fInterval',
|
||||||
|
'totp2fRange',
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title => 'external2f',
|
title => 'external2f',
|
||||||
help => 'external2f.html',
|
help => 'external2f.html',
|
||||||
|
|
|
@ -644,6 +644,7 @@
|
||||||
"save": "حفظ",
|
"save": "حفظ",
|
||||||
"saveReport": "احفظ التقرير",
|
"saveReport": "احفظ التقرير",
|
||||||
"savingConfirmation": "حفظ التأكيد",
|
"savingConfirmation": "حفظ التأكيد",
|
||||||
|
"secondFactors": "Second factors",
|
||||||
"securedCookie": "ملفات تعريف الارتباط المضمونة (سسل)",
|
"securedCookie": "ملفات تعريف الارتباط المضمونة (سسل)",
|
||||||
"security": "الحماية",
|
"security": "الحماية",
|
||||||
"serverError": "خطأ في جهاز الخادم",
|
"serverError": "خطأ في جهاز الخادم",
|
||||||
|
@ -699,6 +700,12 @@
|
||||||
"timeoutActivity": "مهلة نشاط الجلسات",
|
"timeoutActivity": "مهلة نشاط الجلسات",
|
||||||
"timeoutActivityInterval": "فترة تحديث الجلسات",
|
"timeoutActivityInterval": "فترة تحديث الجلسات",
|
||||||
"tokenUseGlobalStorage": "استخدام سعة التخزين العامة",
|
"tokenUseGlobalStorage": "استخدام سعة التخزين العامة",
|
||||||
|
"totp":"TOTP",
|
||||||
|
"totp2fActivation":"Activation",
|
||||||
|
"totp2fAuthnLevel":"TOTP authentication level",
|
||||||
|
"totp2fInterval":"Interval",
|
||||||
|
"totp2fRange":"Range of attempts",
|
||||||
|
"totpSelfRegistration":"Self registration",
|
||||||
"trustedDomains": "النطاقات الموثوق بها",
|
"trustedDomains": "النطاقات الموثوق بها",
|
||||||
"trustedProxies": "عناوين الآي بي البروكسي الموثوق بها",
|
"trustedProxies": "عناوين الآي بي البروكسي الموثوق بها",
|
||||||
"twitterAppName": "اسم التطبيق",
|
"twitterAppName": "اسم التطبيق",
|
||||||
|
|
|
@ -644,6 +644,7 @@
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
"saveReport": "Save report",
|
"saveReport": "Save report",
|
||||||
"savingConfirmation": "Saving confirmation",
|
"savingConfirmation": "Saving confirmation",
|
||||||
|
"secondFactors": "Second factors",
|
||||||
"securedCookie": "Secured Cookie (SSL)",
|
"securedCookie": "Secured Cookie (SSL)",
|
||||||
"security": "Security",
|
"security": "Security",
|
||||||
"serverError": "Server error",
|
"serverError": "Server error",
|
||||||
|
@ -699,6 +700,12 @@
|
||||||
"timeoutActivity": "Sessions activity timeout",
|
"timeoutActivity": "Sessions activity timeout",
|
||||||
"timeoutActivityInterval": "Sessions update interval",
|
"timeoutActivityInterval": "Sessions update interval",
|
||||||
"tokenUseGlobalStorage": "Use global storage",
|
"tokenUseGlobalStorage": "Use global storage",
|
||||||
|
"totp":"TOTP",
|
||||||
|
"totp2fActivation":"Activation",
|
||||||
|
"totp2fAuthnLevel":"TOTP authentication level",
|
||||||
|
"totp2fInterval":"Interval",
|
||||||
|
"totp2fRange":"Range of attempts",
|
||||||
|
"totpSelfRegistration":"Self registration",
|
||||||
"trustedDomains": "Trusted domains",
|
"trustedDomains": "Trusted domains",
|
||||||
"trustedProxies": "Trusted proxies IP",
|
"trustedProxies": "Trusted proxies IP",
|
||||||
"twitterAppName": "Application name",
|
"twitterAppName": "Application name",
|
||||||
|
|
|
@ -643,6 +643,7 @@
|
||||||
"Same": "Identique",
|
"Same": "Identique",
|
||||||
"save": "Sauver",
|
"save": "Sauver",
|
||||||
"saveReport": "Rapport de sauvegarde",
|
"saveReport": "Rapport de sauvegarde",
|
||||||
|
"secondFactors": "Second facteurs",
|
||||||
"savingConfirmation": "Confirmation de sauvegarde",
|
"savingConfirmation": "Confirmation de sauvegarde",
|
||||||
"securedCookie": "Cookie sécurisé (HTTPS)",
|
"securedCookie": "Cookie sécurisé (HTTPS)",
|
||||||
"security": "Sécurité",
|
"security": "Sécurité",
|
||||||
|
@ -699,6 +700,12 @@
|
||||||
"timeoutActivity": "Délai d'expiration des sessions",
|
"timeoutActivity": "Délai d'expiration des sessions",
|
||||||
"timeoutActivityInterval": "Intervalle de mise à jour des sessions",
|
"timeoutActivityInterval": "Intervalle de mise à jour des sessions",
|
||||||
"tokenUseGlobalStorage": "Utiliser le cache global",
|
"tokenUseGlobalStorage": "Utiliser le cache global",
|
||||||
|
"totp":"TOTP",
|
||||||
|
"totp2fActivation":"Activation",
|
||||||
|
"totp2fAuthnLevel":"Niceau d'authentification TOTP",
|
||||||
|
"totp2fInterval":"Intervalle",
|
||||||
|
"totp2fRange":"Nombre d'intervalles à tester",
|
||||||
|
"totpSelfRegistration":"Auto-enregistrement",
|
||||||
"trustedDomains": "Domaines approuvés",
|
"trustedDomains": "Domaines approuvés",
|
||||||
"trustedProxies": "IP des proxys de confiance",
|
"trustedProxies": "IP des proxys de confiance",
|
||||||
"twitterAppName": "Nom de l'application",
|
"twitterAppName": "Nom de l'application",
|
||||||
|
@ -710,7 +717,7 @@
|
||||||
"u2f": "U2F",
|
"u2f": "U2F",
|
||||||
"u2fActivation": "Activation",
|
"u2fActivation": "Activation",
|
||||||
"u2fAuthnLevel": "Niveau d'authentification U2F",
|
"u2fAuthnLevel": "Niveau d'authentification U2F",
|
||||||
"u2fSelfRegistration": "Activation de l'enregistrement",
|
"u2fSelfRegistration": "Auto-enregistrement",
|
||||||
"uid": "Identifiant",
|
"uid": "Identifiant",
|
||||||
"unknownAttrOrMacro": "Attribut ou macro inconnu",
|
"unknownAttrOrMacro": "Attribut ou macro inconnu",
|
||||||
"unknownError": "Erreur inconnue",
|
"unknownError": "Erreur inconnue",
|
||||||
|
|
|
@ -644,6 +644,7 @@
|
||||||
"save": "Salva",
|
"save": "Salva",
|
||||||
"saveReport": "Salva report",
|
"saveReport": "Salva report",
|
||||||
"savingConfirmation": "Salvataggio della conferma",
|
"savingConfirmation": "Salvataggio della conferma",
|
||||||
|
"secondFactors": "Second factors",
|
||||||
"securedCookie": "Cookie protetti (SSL)",
|
"securedCookie": "Cookie protetti (SSL)",
|
||||||
"security": "Sicurezza",
|
"security": "Sicurezza",
|
||||||
"serverError": "Errore del server",
|
"serverError": "Errore del server",
|
||||||
|
@ -699,6 +700,12 @@
|
||||||
"timeoutActivity": "Timeout attività di sessioni",
|
"timeoutActivity": "Timeout attività di sessioni",
|
||||||
"timeoutActivityInterval": "Intervallo di aggiornamento delle sessioni",
|
"timeoutActivityInterval": "Intervallo di aggiornamento delle sessioni",
|
||||||
"tokenUseGlobalStorage": "Utilizza lo storage globale",
|
"tokenUseGlobalStorage": "Utilizza lo storage globale",
|
||||||
|
"totp":"TOTP",
|
||||||
|
"totp2fActivation":"Activation",
|
||||||
|
"totp2fAuthnLevel":"TOTP authentication level",
|
||||||
|
"totp2fInterval":"Interval",
|
||||||
|
"totp2fRange":"Range of attempts",
|
||||||
|
"totpSelfRegistration":"Self registration",
|
||||||
"trustedDomains": "Domini attendibili",
|
"trustedDomains": "Domini attendibili",
|
||||||
"trustedProxies": "IP proxy attendibili",
|
"trustedProxies": "IP proxy attendibili",
|
||||||
"twitterAppName": "Nome dell'applicazione",
|
"twitterAppName": "Nome dell'applicazione",
|
||||||
|
|
|
@ -644,6 +644,7 @@
|
||||||
"save": "Lưu",
|
"save": "Lưu",
|
||||||
"saveReport": "Lưu báo cáo",
|
"saveReport": "Lưu báo cáo",
|
||||||
"savingConfirmation": "Lưu xác nhận",
|
"savingConfirmation": "Lưu xác nhận",
|
||||||
|
"secondFactors": "Second factors",
|
||||||
"securedCookie": "Cookie bảo mật (SSL)",
|
"securedCookie": "Cookie bảo mật (SSL)",
|
||||||
"security": "An ninh",
|
"security": "An ninh",
|
||||||
"serverError": "Lỗi máy chủ",
|
"serverError": "Lỗi máy chủ",
|
||||||
|
@ -699,6 +700,12 @@
|
||||||
"timeoutActivity": "Thời gian chờ của các hoạt động phiên",
|
"timeoutActivity": "Thời gian chờ của các hoạt động phiên",
|
||||||
"timeoutActivityInterval": "Khoảng thời gian cập nhật phiên",
|
"timeoutActivityInterval": "Khoảng thời gian cập nhật phiên",
|
||||||
"tokenUseGlobalStorage": "Sử dụng lưu trữ toàn cục",
|
"tokenUseGlobalStorage": "Sử dụng lưu trữ toàn cục",
|
||||||
|
"totp":"TOTP",
|
||||||
|
"totp2fActivation":"Activation",
|
||||||
|
"totp2fAuthnLevel":"TOTP authentication level",
|
||||||
|
"totp2fInterval":"Interval",
|
||||||
|
"totp2fRange":"Range of attempts",
|
||||||
|
"totpSelfRegistration":"Self registration",
|
||||||
"trustedDomains": "Miền tin cậy",
|
"trustedDomains": "Miền tin cậy",
|
||||||
"trustedProxies": "proxies IP tin cậy",
|
"trustedProxies": "proxies IP tin cậy",
|
||||||
"twitterAppName": "Tên ứng dụng",
|
"twitterAppName": "Tên ứng dụng",
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user