Programmable TOTP token that fits any authentication system
Classic SHA-1 TOTP hardware token: high-strength and water-resistant
Programmable hardware TOTP token in a key fob format
Classic hardware TOTP token with SHA-256 algorithm support
Free 2FA app for iOS and Android with encrypted cloud backup, PIN, and biometric protection
OTP delivery via messenger — easy, secure, convenient. The service is available on Telegram, Viber and Facebook Messenger
Delivery of one-time passwords via SMS messages
Free delivery of one-time passwords via email
Free one-time password delivery through push notifications in the Protectimus Smart 2FA app - simply press a button to confirm your login
To integrate Protectimus 2FA solution with your RADIUS supporting device or software you need to set up and configure Protectimus RADIUS Server, and then configure the authentication policies on the device or application you want to add Protectimus 2FA to:
- You allow the transmission of an authentication request over the RADIUS protocol to Protectimus RADIUS Server;
- The Protectimus RADIUS Server component receives and processes the authentication request;
- Then Protectimus RADIUS Server contacts the Protectimus authentication server to verify the one-time password entered by the user.
docker-compose up -d
docker-compose logs -f
ATTENTION! If you plan to use the Protectimus On-Premise Platform, keep the Platform checkbox checked. If you plan to use the Protectimus SAAS Service, uncheck the Platform checkbox.
If you plan to use the Protectimus On-Premise Platform |
If you use plan to use the Protectimus SAAS Service |
Available properties that you should add to the radius.yml file include:
radius:
secret: secret
auth-port: 1812
acct-port: 1813
listen-address: 0.0.0.0
dictionaries:
- file:<some_path>/<some_name>.dat
attributes:
copy-state:
true
defaults:
Service-Type: NAS-Prompt-User
for-users:
john:
Service-Type: Login-User
ldap:
memberOf:
'[cn=admins,ou=groups,dc=test,dc=com]':
Service-Type: Administrative
uid:
john_wick:
Class: Pro
conditional:
'[ldapUser.attributes["uid"] == "john"]':
Service-Type:
- Login-User
'[request.getAttributeValue("User-Name") =+ "john"]':
Class:
- RDP_HeadOffice_GP
PROPERTY NAME | PROTERTY STANDS FOR |
secret: |
The secret to be used by your RADIUS server. |
auth-port: |
The port where the RADIUS server will run. |
listen-address: |
The IP address the server listens on. |
dictionaries: |
Attribute list extension for RADIUS. Find an example of the dictionary extension here. |
attributes: |
Attributes that will be returned in response on successful authentication. |
copy-state: |
Copies each returned attribute into the response. |
defaults: |
Attributes for all users. |
for-users: |
Attributes for specific users. |
ldap: |
Attributes for specific user or group of users in LDAP. |
conditional: |
When conditional is enabled, it allows to specify a script that will check the condition under which the attribute will be returned. |
protectimus-api:
login:
api-key:
url: https://api.protectimus.com/
resource-id:
resource-name:
PROPERTY NAME | PROTERTY STANDS FOR |
login: |
Your login in the PROTECTIMUS system. |
api-key: |
Your API key in the PROTECTIMUS system. |
url: |
If you are using the PROTECTIMUS cloud service, specify the following API URL: https://api.protectimus.com/ If you are using the Protectimus on-premise platform, the API URL will be something like: protectimus.api.url=http://127.0.0.1:8080/ |
resource-id: |
ID of the resource that you created in the PROTECTIMUS system. |
resource-name: |
Name of the resource that you created in the PROTECTIMUS system. |
ldap:
base: dc=test,dc=com
urls:
- ldap://127.0.0.1:389
principal-attribute: userPrincipalName
custom-filter: (memberof=cn=managers,ou=groups,dc=test,dc=com)
PROPERTY NAME | PROTERTY STANDS FOR |
base: |
The LDAP DN of Group or organizational unit containing all of the users you wish to permit to log in. |
urls: |
The hostname or IP address of your domain controller. |
principal-attribute: |
Is used for LDAP authentication by defined attribute. If you want to authenticate user with “sAMAccountName” instead of “userPrincipalName”, specify the attributes “query-attribute” and “principal-attribute” accordingly |
custom-filter: |
Is used to restrict which users are allowed to authenticate. |
auth:
providers:
re-enter-otp: true
principal-normalization: true
bypass-otp:
ldap-filter: (memberOf=cn=bypass-otp,ou=groups,dc=test,dc=com)
usernames:
- john
- luci
inline-mode:
enabled: false
separator: ''
PROPERTY NAME | PROTERTY STANDS FOR |
providers: |
Could be:
|
re-enter-otp: |
When re-enter-otp is enabled, password is not requested after unsuccessful OTP check. |
principal-normalization: |
When normalization is enabled any domain information is stripped from the username, so “username”, “DOMAIN\username” and “username@domain.com” would all resolve to a single “username” |
bypass-otp: |
When bypass-otp is enabled, OTP is not requested for specified users. |
inline-mode: |
Inline mode allows you to use 2FA in case when Access-Challenge is not supported. Inline mode can be activated with ‘enabled: true’ or using request attribute ‘State=INLINE’. In this case password must be in following format ‘password,otp’, if using separator: ‘,’. |
# Configuration for RADIUS_PROXY auth provider
proxy:
secret: secret
auth-port: 1812
remote-address: 192.168.1.1
PROPERTY NAME | PROTERTY STANDS FOR |
secret: |
The secret to be used by your RADIUS_PROXY server. |
auth-port: |
The port where the RADIUS server will run. |
remote-address: |
IP address of the PROXY_RADIUS server. |
radius:
secret: secret
auth-port: 1812
dictionaries:
– file:C:/Protectimus/dict.dat
attributes:
defaults:
Service-Type: NAS-Prompt-User
auth:
providers:
# Could be:
– LDAP
– AD
– PROTECTIMUS_PASSWORD
– PROTECTIMUS_OTP
– RADIUS_PROXY
# Configuration for RADIUS_PROXY auth provider
proxy:
secret: secret
auth-port: 1812
remote-address: 192.168.1.1
#Configuration for AD auth provider
ad:
urls:
– ldap://127.0.0.1:389
domain: test.com
#Configuration for LDAP auth provider
ldap:
urls:
– ldap://localhost:389
base: dc=test,dc=com
username: admin@test.com
password: secret
principal-attribute: sAMAccountName
#Configuration for PROTECTIMUS_PASSWORD/PROTECTIMUS_OTP auth providers
protectimus-api:
login: test@protectimus.com
api-key: secret
url: https://api.protectimus.com/
resource-id: 1
In this case password would be authenticated with LDAP storage, and OTP with Protectimus MFA.
VENDOR 12356 fortinet
VENDORATTR 12356 Fortinet-Group-Name 1 string
VENDORATTR 12356 Fortinet-Access-Profile 6 string
Now you need to configure your device or application to communicate with Protectimus RADIUS Server service over RADIUS protocol.
Protectimus Ltd
Carrick house, 49 Fitzwilliam Square,
Dublin D02 N578, Ireland
USA: +1 786 796 66 64
Ireland: +353 19 014 565
Protectimus Ltd
Carrick house, 49 Fitzwilliam Square,
Dublin D02 N578, Ireland
USA: +1 786 796 66 64
Ireland: +353 19 014 565