Commits (2)
......@@ -19,7 +19,7 @@ All parameters are configured in "General Parameters » Portal Parameters
» Extensions » External 2nd Factor".
- **Activation**
- **Code RegEx**: regular expression to create an OTP code. Let this
- **Code regex**: regular expression to create an OTP code. Let this
option blank to delegate code Generation / Verification to an
external provider
- **Send command**: define your command using *$attribute* like in
......@@ -33,9 +33,9 @@ All parameters are configured in "General Parameters » Portal Parameters
- **Authentication level** (Optional): if you want to overwrite the
value sent by your authentication module, you can define here the new
authentication level. Example: 5
- **Logo** (Optional): logo file (in static/<skin> directory)
- **Label** (Optional): label that should be displayed to the user on
the choice screen
- **Logo** (Optional): logo file (in static/<skin> directory)
.. attention::
......
......@@ -48,6 +48,6 @@ Mail second factor".
- **Authentication level** (Optional): if you want to overwrite the
value sent by your authentication module, you can define here the new
authentication level. Example: 5
- **Logo** (Optional): logo file *(in static/<skin> directory)*
- **Label** (Optional): label that should be displayed to the user on
the choice screen
- **Logo** (Optional): logo file *(in static/<skin> directory)*
......@@ -56,13 +56,13 @@ Mail second factor".
code against the Radius server, use this attribute as the login and
the OTP code as password. By default, the attribute designated as
``whatToTrace`` is used.
- **Authentication timeout** (Optional) :
- **Authentication timeout** (Optional): Allowed time to perform authentication
- **Authentication level** (Optional): if you want to overwrite the
value sent by your authentication module, you can define here the new
authentication level. Example: 5
- **Logo** (Optional): logo file *(in static/<skin> directory)*
- **Label** (Optional): label that should be displayed to the user on
the choice screen
- **Logo** (Optional): logo file *(in static/<skin> directory)*
Vendor specific
~~~~~~~~~~~~~~~
......
......@@ -20,9 +20,9 @@ Second Factors » REST 2nd Factor".
- **Authentication level** (Optional): if you want to overwrite the
value sent by your authentication module, you can define here the new
authentication level. Example: 5
- **Logo** (Optional): logo file *(in static/<skin> directory)*
- **Label** (Optional): label that should be displayed to the user on
the choice screen
- **Logo** (Optional): logo file *(in static/<skin> directory)*
Arguments
---------
......
......@@ -29,6 +29,14 @@ The E-Mail, External and REST 2F modules
parameters.
Self-care on Portal
-------------------
User may register second factors themselves on the Portal by using the 2FA Manager.
The link will be displayed if at least one SFA module is enabled. You can set a
rule to display or not the link.
Registration on first use
-------------------------
......@@ -38,21 +46,6 @@ If you want to force a 2F registration on first login, you can use the *Force
You can use a `rule<writingrulesand_headers>` to enable this behavior only for
some users.
Second factor expiration
------------------------
You can display a message if an expired second factor has been removed by
enabling *Display a message if an expired SF is removed* option or setting a
rule.
Self-care on Portal
-------------------
User may register second factors themselves on the Portal by using the 2FA Manager.
The link will be displayed if at least one SFA module is enabled. You can set a
rule to display or not the link.
Session upgrade through 2FA
---------------------------
......@@ -68,6 +61,20 @@ of doing a complete reauthentication.
.. |beta| image:: /documentation/beta.png
Registration timeout
--------------------
Allowed time to register a TOTP.
Second factor expiration
------------------------
You can display a message if an expired second factor has been removed by
enabling *Display a message if an expired SF is removed* option or setting a
rule.
SF name(s) or number of removed SF can be displayed in message BODY by using
`_nameSF_` or `_removedSF_` respectively.
Providing tokens from an external source
----------------------------------------
......
......@@ -43,24 +43,23 @@ In the manager (advanced parameters), you just have to enable it:
- **Activation**: set it to "on"
- **Self registration**: set it to "on" if users are authorized to
generate themselves a TOTP secret
- **Allow users to remove TOTP**: If enabled, users can unregister
TOTP
- **Issuer name** (Optional): default to portal hostname
- **Interval**: interval for TOTP algorithm (default: 30)
- **Range of attempts**: number of additional intervals to test (default: 1)
- **Number of digits**: number of digit by codes (default: 6)
- **Authentication level**: you can overwrite here auth level for TOTP
registered users. Leave it blank keeps auth level provided by first
authentication module *(default: 2 for user/password based modules)*.
**It is recommended to set an higher value here if you want to give
access to some apps only to users enrolled**
- **Issuer**: default to portal hostname
- **Interval**: interval for TOTP algorithm (default: 30)
- **Range**: number of additional intervals to test (default: 1)
- **Digits**: number of digit by codes (default: 6)
- **Allow users to remove TOTP**: If enabled, users can unregister
TOTP.
- **Lifetime**: Unlimited by default. Set a Time To Live in seconds.
TTL is checked at each login process if set. If TTL is expired,
relative TOTP is removed.
- **Logo** (Optional): logo file *(in static/<skin> directory)*
access to some apps only for enrolled users**
- **Label** (Optional): label that should be displayed to the user on
the choice screen
- **Logo** (Optional): logo file *(in static/<skin> directory)*
- **Lifetime** (Optional): Unlimited by default. Set a Time To Live in seconds.
TTL is checked at each login process if set. If TTL is expired,
relative TOTP is removed.
.. attention::
......
......@@ -43,20 +43,19 @@ In the manager (second factors), you just have to enable it:
- **Activation**: set it to "on"
- **Self registration**: set it to "on" if users are authorized to
register their keys
- **Allow users to remove U2F key**: If enabled, users can unregister
enrolled U2F device
- **Authentication level**: you can overwrite here auth level for U2F
registered users. Leave it blank keeps auth level provided by first
authentication module *(default: 2 for user/password based modules)*.
**It is recommended to set an higher value here if you want to give
access to some apps only for enrolled users**
- **Allow users to remove U2F key**: If enabled, users can unregister
enrolled U2F device.
- **Lifetime**: Unlimited by default. Set a Time To Live in seconds.
TTL is checked at each login process if set. If TTL is expired,
relative 2F device is removed.
- **Logo** (Optional): logo file *(in static/<skin> directory)*
- **Label** (Optional): label that should be displayed to the user on
the choice screen
- **Logo** (Optional): logo file *(in static/<skin> directory)*
- **Lifetime** (Optional): Unlimited by default. Set a Time To Live in seconds.
TTL is checked at each login process if set. If TTL is expired,
relative 2F device is removed.
.. attention::
......
......@@ -21,9 +21,9 @@ In the manager (second factors), you just have to enable it:
authentication module (By default: 2 for user/password based
modules). It is recommended to set an higher value here if you want
to give access to apps just for enrolled users.
- **Logo** (Optional): logo file *(in static/<skin> directory)*
- **Label** (Optional): label that should be displayed to the user on
the choice screen
- **Logo** (Optional): logo file *(in static/<skin> directory)*
.. tip::
......
......@@ -23,27 +23,27 @@ In the manager (second factors), you just have to enable it:
- **Activation**: set it to "on"
- **Self registration**: set it to "on" if users are authorized to
register their keys
- **Authentication level**: you can overwrite here auth level for
Yubikey registered users. Leave it blank keeps auth level provided by
first authentication module *(default: 2 for user/password based
modules)*. **It is recommended to set an higher value here if you
want to give access to some apps only to enrolled users**
- **Client ID**: given by Yubico or another service
- **Allow users to remove Yubikey**: If enabled, users can unregister
Yubikey device.
- **API client ID**: given by Yubico or another service
- **API secret key**: given by Yubico or another service
- **Nonce (optional)**: if any
- **URL**: Url of service (leave blank to use Yubico cloud services)
- **Nonce** (optional): if any
- **Service URL**: service URL (leave it blank to use Yubico cloud services)
- **OTP public ID part size**: leave it to default (12) unless you know
what you are doing
- **Allow users to remove Yubikey**: If enabled, users can unregister
Yubikey device.
- **Get Yubikey ID from session attribute**: If non-empty, the Yubikey ID will
- **Get Yubikey ID from session attribute**: if non-empty, the Yubikey ID will
be read from this session attribute. This allows external provisionning of Yubikeys.
- **Lifetime**: Unlimited by default. Set a Time To Live in seconds.
TTL is checked at each login process if set. If TTL is expired,
relative Yubikey is removed.
- **Logo** (Optional): logo file *(in static/<skin> directory)*
- **Authentication level**: you can overwrite here auth level for
Yubikey registered users. Leave it blank keeps auth level provided by
first authentication module *(default: 2 for user/password based
modules)*. **It is recommended to set an higher value here if you
want to give access to some apps only for enrolled users**
- **Label** (Optional): label that should be displayed to the user on
the choice screen
- **Logo** (Optional): logo file *(in static/<skin> directory)*
- **Lifetime** (Optional): Unlimited by default. Set a Time To Live in seconds.
TTL is checked at each login process if set. If TTL is expired,
relative Yubikey is removed.
.. attention::
......
......@@ -883,6 +883,7 @@ sub tree {
'sfManagerRule',
'sfRequired',
'sfOnlyUpgrade',
'sfRegisterTimeout',
{
title => 'utotp2f',
help => 'utotp2f.html',
......@@ -904,10 +905,10 @@ sub tree {
'totp2fInterval',
'totp2fRange',
'totp2fDigits',
'totp2fTTL',
'totp2fAuthnLevel',
'totp2fLabel',
'totp2fLogo',
'totp2fTTL'
]
},
{
......@@ -916,9 +917,9 @@ sub tree {
form => 'simpleInputContainer',
nodes => [
'u2fActivation', 'u2fSelfRegistration',
'u2fUserCanRemoveKey', 'u2fTTL',
'u2fAuthnLevel', 'u2fLabel',
'u2fLogo',
'u2fUserCanRemoveKey', 'u2fAuthnLevel',
'u2fLabel', 'u2fLogo',
'u2fTTL'
]
},
{
......@@ -935,10 +936,10 @@ sub tree {
'yubikey2fUrl',
'yubikey2fPublicIDSize',
'yubikey2fFromSessionAttribute',
'yubikey2fTTL',
'yubikey2fAuthnLevel',
'yubikey2fLabel',
'yubikey2fLogo',
'yubikey2fTTL'
],
},
{
......@@ -948,9 +949,9 @@ sub tree {
nodes => [
'mail2fActivation', 'mail2fCodeRegex',
'mail2fTimeout', 'mail2fSubject',
'mail2fBody', 'mail2fAuthnLevel',
'mail2fLabel', 'mail2fLogo',
'mail2fSessionKey',
'mail2fBody', 'mail2fSessionKey',
'mail2fAuthnLevel', 'mail2fLabel',
'mail2fLogo'
]
},
{
......@@ -961,7 +962,7 @@ sub tree {
'ext2fActivation', 'ext2fCodeActivation',
'ext2FSendCommand', 'ext2FValidateCommand',
'ext2fAuthnLevel', 'ext2fLabel',
'ext2fLogo',
'ext2fLogo'
]
},
{
......@@ -975,8 +976,8 @@ sub tree {
'radius2fUsernameSessionKey',
'radius2fTimeout',
'radius2fAuthnLevel',
'radius2fLogo',
'radius2fLabel',
'radius2fLogo'
]
},
{
......@@ -986,7 +987,7 @@ sub tree {
'rest2fActivation', 'rest2fInitUrl',
'rest2fInitArgs', 'rest2fVerifyUrl',
'rest2fVerifyArgs', 'rest2fAuthnLevel',
'rest2fLabel', 'rest2fLogo',
'rest2fLabel', 'rest2fLogo'
]
},
'sfExtra',
......@@ -997,10 +998,9 @@ sub tree {
nodes => [
'sfRemovedMsgRule', 'sfRemovedUseNotif',
'sfRemovedNotifRef', 'sfRemovedNotifTitle',
'sfRemovedNotifMsg',
'sfRemovedNotifMsg'
],
},
'sfRegisterTimeout',
}
]
},
{
......
......@@ -879,11 +879,11 @@
"rest2f":"REST second factor",
"rest2fActivation":"تفعيل",
"rest2fAuthnLevel":"مستوى إثبات الهوية",
"rest2fInitArgs":"Init Arguments",
"rest2fInitArgs":"Init arguments",
"rest2fInitUrl":"Init URL",
"rest2fLabel":"Label",
"rest2fLogo":"شعار",
"rest2fVerifyArgs":"Verify Arguments",
"rest2fVerifyArgs":"Verify arguments",
"rest2fVerifyUrl":"Verify URL",
"restAuthServer":"Authentication server",
"restAuthUrl":"يو آر إل إثبات الهوية",
......@@ -1129,10 +1129,10 @@
"tooltip":"Tooltip",
"totp2f":"TOTP",
"totp2fActivation":"تفعيل",
"totp2fAuthnLevel":"TOTP authentication level",
"totp2fAuthnLevel":"Authentication level",
"totp2fDigits":"Number of digits",
"totp2fInterval":"Interval",
"totp2fIssuer":"TOTP Issuer name",
"totp2fIssuer":"Issuer name",
"totp2fLabel":"Label",
"totp2fLogo":"شعار",
"totp2fRange":"Range of attempts",
......@@ -1150,7 +1150,7 @@
"type":"نوع",
"u2f":"U2F",
"u2fActivation":"تفعيل",
"u2fAuthnLevel":"U2F مستوى إثبات الهوية",
"u2fAuthnLevel":"مستوى إثبات الهوية",
"u2fLabel":"Label",
"u2fLogo":"شعار",
"u2fSelfRegistration":"التسجيل الذاتي",
......
......@@ -879,11 +879,11 @@
"rest2f":"REST second factor",
"rest2fActivation":"Activation",
"rest2fAuthnLevel":"Authentication level",
"rest2fInitArgs":"Init Arguments",
"rest2fInitArgs":"Init arguments",
"rest2fInitUrl":"Init URL",
"rest2fLabel":"Label",
"rest2fLogo":"Logo",
"rest2fVerifyArgs":"Verify Arguments",
"rest2fVerifyArgs":"Verify arguments",
"rest2fVerifyUrl":"Verify URL",
"restAuthServer":"Authentication server",
"restAuthUrl":"Authentication URL",
......@@ -1129,10 +1129,10 @@
"tooltip":"Tooltip",
"totp2f":"TOTP",
"totp2fActivation":"Activation",
"totp2fAuthnLevel":"TOTP authentication level",
"totp2fAuthnLevel":"Authentication level",
"totp2fDigits":"Number of digits",
"totp2fInterval":"Interval",
"totp2fIssuer":"TOTP Issuer name",
"totp2fIssuer":"Issuer name",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fRange":"Range of attempts",
......@@ -1150,7 +1150,7 @@
"type":"Type",
"u2f":"U2F",
"u2fActivation":"Activation",
"u2fAuthnLevel":"U2F authentication level",
"u2fAuthnLevel":"Authentication level",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Self registration",
......
......@@ -879,11 +879,11 @@
"rest2f":"REST second factor",
"rest2fActivation":"Activation",
"rest2fAuthnLevel":"Authentication level",
"rest2fInitArgs":"Init Arguments",
"rest2fInitArgs":"Init arguments",
"rest2fInitUrl":"Init URL",
"rest2fLabel":"Label",
"rest2fLogo":"Logo",
"rest2fVerifyArgs":"Verify Arguments",
"rest2fVerifyArgs":"Verify arguments",
"rest2fVerifyUrl":"Verify URL",
"restAuthServer":"Authentication server",
"restAuthUrl":"Authentication URL",
......@@ -1129,10 +1129,10 @@
"tooltip":"Tooltip",
"totp2f":"TOTP",
"totp2fActivation":"Activation",
"totp2fAuthnLevel":"TOTP authentication level",
"totp2fAuthnLevel":"Authentication level",
"totp2fDigits":"Number of digits",
"totp2fInterval":"Interval",
"totp2fIssuer":"TOTP Issuer name",
"totp2fIssuer":"Issuer name",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fRange":"Range of attempts",
......@@ -1150,7 +1150,7 @@
"type":"Type",
"u2f":"U2F",
"u2fActivation":"Activation",
"u2fAuthnLevel":"U2F authentication level",
"u2fAuthnLevel":"Authentication level",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Self registration",
......
......@@ -1129,10 +1129,10 @@
"tooltip":"Tooltip",
"totp2f":"TOTP",
"totp2fActivation":"Activación",
"totp2fAuthnLevel":"Nivel de autentificación TOTP",
"totp2fAuthnLevel":"Nivel de autentificación",
"totp2fDigits":"Cantidad de dígitos",
"totp2fInterval":"Intervalo",
"totp2fIssuer":"Nombre de emisor TOTP",
"totp2fIssuer":"Nombre de emisor",
"totp2fLabel":"Etiqueta",
"totp2fLogo":"Logotipo",
"totp2fRange":"Rango de intentos",
......@@ -1150,7 +1150,7 @@
"type":"Tipo",
"u2f":"U2F",
"u2fActivation":"Activación",
"u2fAuthnLevel":"Nivel de autentificación U2F",
"u2fAuthnLevel":"Nivel de autentificación",
"u2fLabel":"Etiqueta",
"u2fLogo":"Logotipo",
"u2fSelfRegistration":"Auto registro",
......
......@@ -1129,10 +1129,10 @@
"tooltip":"Info-bulle",
"totp2f":"TOTP",
"totp2fActivation":"Activation",
"totp2fAuthnLevel":"Niveau d'authentification TOTP",
"totp2fAuthnLevel":"Niveau d'authentification",
"totp2fDigits":"Nombre de chiffres",
"totp2fInterval":"Intervalle",
"totp2fIssuer":"Nom du fournisseur TOTP",
"totp2fIssuer":"Nom du fournisseur",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fRange":"Nombre d'intervalles à tester",
......@@ -1150,7 +1150,7 @@
"type":"Type",
"u2f":"U2F",
"u2fActivation":"Activation",
"u2fAuthnLevel":"Niveau d'authentification U2F",
"u2fAuthnLevel":"Niveau d'authentification",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Auto-enregistrement",
......
......@@ -883,7 +883,7 @@
"rest2fInitUrl":"URL iniziale",
"rest2fLabel":"Label",
"rest2fLogo":"Logo",
"rest2fVerifyArgs":"Verifica Argomenti",
"rest2fVerifyArgs":"Verifica argomenti",
"rest2fVerifyUrl":"Verifica UR",
"restAuthServer":"Authentication server",
"restAuthUrl":"URL di autenticazione",
......@@ -1129,10 +1129,10 @@
"tooltip":"Tooltip",
"totp2f":"TOTP",
"totp2fActivation":"Attivazione",
"totp2fAuthnLevel":"Livello di autenticazione TOTP",
"totp2fAuthnLevel":"Livello di autenticazione",
"totp2fDigits":"Numero di cifre",
"totp2fInterval":"Intervallo",
"totp2fIssuer":"Nome dell'emittente TOTP",
"totp2fIssuer":"Nome dell'emittente",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fRange":"Gamma di tentativi",
......@@ -1150,7 +1150,7 @@
"type":"Tipo",
"u2f":"U2F",
"u2fActivation":"Attivazione",
"u2fAuthnLevel":"Livello di autenticazione U2F",
"u2fAuthnLevel":"Livello di autenticazione",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Auto-registrazione",
......
......@@ -1129,10 +1129,10 @@
"tooltip":"Etykietka",
"totp2f":"TOTP",
"totp2fActivation":"Aktywacja",
"totp2fAuthnLevel":"Poziom uwierzytelnienia TOTP",
"totp2fAuthnLevel":"Poziom uwierzytelnienia",
"totp2fDigits":"Ilość cyfr",
"totp2fInterval":"Interwał",
"totp2fIssuer":"TOTP Nazwa wystawcy",
"totp2fIssuer":"Nazwa wystawcy",
"totp2fLabel":"Etykieta",
"totp2fLogo":"Logo",
"totp2fRange":"Zakres prób",
......@@ -1150,7 +1150,7 @@
"type":"Rodzaj",
"u2f":"U2F",
"u2fActivation":"Aktywacja",
"u2fAuthnLevel":"Poziom uwierzytelnienia U2F",
"u2fAuthnLevel":"Poziom uwierzytelnienia",
"u2fLabel":"Etykieta",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Samodzielna rejestracja",
......
......@@ -879,11 +879,11 @@
"rest2f":"REST ile ikinci faktör",
"rest2fActivation":"Aktivasyon",
"rest2fAuthnLevel":"Doğrulama seviyesi",
"rest2fInitArgs":"Başlangıç Argümanları",
"rest2fInitArgs":"Başlangıç argümanları",
"rest2fInitUrl":"Başlangıç URL",
"rest2fLabel":"Etiket",
"rest2fLogo":"Logo",
"rest2fVerifyArgs":"Argümanları Doğrula",
"rest2fVerifyArgs":"Argümanları doğrula",
"rest2fVerifyUrl":"URL'yi Doğrula",
"restAuthServer":"Doğrulama sunucusu",
"restAuthUrl":"Doğrulama URL'si",
......@@ -1129,10 +1129,10 @@
"tooltip":"Araç ipucu",
"totp2f":"TOTP",
"totp2fActivation":"Aktivasyon",
"totp2fAuthnLevel":"TOTP doğrulama seviyesi",
"totp2fAuthnLevel":"Doğrulama seviyesi",
"totp2fDigits":"Rakam sayısı",
"totp2fInterval":"Süre aralığı",
"totp2fIssuer":"TOTP Düzenleyici adı",
"totp2fIssuer":"Düzenleyici adı",
"totp2fLabel":"Etiket",
"totp2fLogo":"Logo",
"totp2fRange":"Deneme sayısı",
......@@ -1150,7 +1150,7 @@
"type":"Tür",
"u2f":"U2F",
"u2fActivation":"Aktivasyon",
"u2fAuthnLevel":"U2F doğrulama seviyesi",
"u2fAuthnLevel":"Doğrulama seviyesi",
"u2fLabel":"Etiket",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Kendi kendine kayıt",
......
......@@ -879,11 +879,11 @@
"rest2f":"REST second factor",
"rest2fActivation":"Kích hoạt",
"rest2fAuthnLevel":"Mức xác thực",
"rest2fInitArgs":"Init Arguments",
"rest2fInitArgs":"Init arguments",
"rest2fInitUrl":"Init URL",
"rest2fLabel":"Label",
"rest2fLogo":"Logo",
"rest2fVerifyArgs":"Verify Arguments",
"rest2fVerifyArgs":"Verify arguments",
"rest2fVerifyUrl":"Verify URL",
"restAuthServer":"Authentication server",
"restAuthUrl":"URL xác thực",
......@@ -1129,10 +1129,10 @@
"tooltip":"Tooltip",
"totp2f":"TOTP",
"totp2fActivation":"Kích hoạt",
"totp2fAuthnLevel":"TOTP authentication level",
"totp2fAuthnLevel":"Authentication level",
"totp2fDigits":"Number of digits",
"totp2fInterval":"Interval",
"totp2fIssuer":"TOTP Issuer name",
"totp2fIssuer":"Issuer name",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fRange":"Range of attempts",
......@@ -1150,7 +1150,7 @@
"type":"Loại",
"u2f":"U2F",
"u2fActivation":"Kích hoạt",
"u2fAuthnLevel":"Mức xác thực U2F",
"u2fAuthnLevel":"Mức xác thực",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Tự đăng ký ",
......
......@@ -879,11 +879,11 @@
"rest2f":"REST second factor",
"rest2fActivation":"激活",
"rest2fAuthnLevel":"认证等级",
"rest2fInitArgs":"Init Arguments",
"rest2fInitArgs":"Init arguments",
"rest2fInitUrl":"Init URL",
"rest2fLabel":"Label",
"rest2fLogo":"Logo",
"rest2fVerifyArgs":"Verify Arguments",
"rest2fVerifyArgs":"Verify arguments",
"rest2fVerifyUrl":"Verify URL",
"restAuthServer":"Authentication server",
"restAuthUrl":"Authentication URL",
......@@ -1129,10 +1129,10 @@
"tooltip":"Tooltip",
"totp2f":"TOTP",
"totp2fActivation":"激活",
"totp2fAuthnLevel":"TOTP authentication level",
"totp2fAuthnLevel":"Authentication level",
"totp2fDigits":"Number of digits",
"totp2fInterval":"Interval",
"totp2fIssuer":"TOTP Issuer name",
"totp2fIssuer":"Issuer name",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fRange":"Range of attempts",
......@@ -1150,7 +1150,7 @@
"type":"Type",
"u2f":"U2F",
"u2fActivation":"激活",
"u2fAuthnLevel":"U2F authentication level",
"u2fAuthnLevel":"Authentication level",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Self registration",
......