SPS 7.5 RADIUSMulti-FactorAuthentication-Tutorial
SPS 7.5 RADIUSMulti-FactorAuthentication-Tutorial
Sessions 7.5
Introduction 5
Technical requirements 7
Notable features 11
About us 37
Contacting us 37
Technical support resources 37
This document describes how you can use the services of RADIUS server (for example, RSA
SecurID Access and FreeRADIUS) to authenticate the sessions of your privileged users with
One Identity Safeguard for Privileged Sessions (SPS).
One Identity Safeguard for Privileged Sessions (SPS) controls privileged access to remote
IT systems, records activities in searchable, movie-like audit trails, and prevents malicious
actions. SPS is a quickly deployable enterprise device, completely independent from clients
and servers — integrating seamlessly into existing networks. It captures the activity data
necessary for user profiling and enables full user session drill down for forensic
investigations.
SPS acts as a central authentication gateway, enforcing strong authentication before users
access sensitive IT assets. SPS can integrate with remote user directories to resolve the
group memberships of users who access nonpublic information. Credentials for accessing
information systems can be retrieved transparently from SPS's local Credential Store or a
third-party password management system. This method protects the confidentiality of
passwords as users can never access them. When used together with RADIUS server (or
another Multi-Factor Authentication (MFA) provider), SPS directs all connections to the
authentication tool, and upon successful authentication, it permits the user to access the
information system.
SPS can interact with your RSA Authentication Manager and can automatically request
strong Multi-Factor Authentication for your privileged users who are accessing the servers
and services protected by SPS. When used together with RSA SecurID Access, SPS prompts
the user for a second factor authentication, and upon successful authentication, it permits
the user to access the information system.
The integration adds an additional security layer to the gateway authentication performed
on SPS. If the user has an RSA SecurID Hardware Token, the user can generate a One-
Time Password (OTP) using the device. This will be used for the authentication to the One
Identity platform. The one-time password is changed after 60 seconds.
SPS can interact with your RADIUS server and can automatically request strong multi-
factor authentication for your privileged users who are accessing the servers and services
protected by SPS.
The integration adds an additional security layer to the gateway authentication performed
on SPS. Your RADIUS server can use any hardware or software token as long as it provides
standard RADIUS interface.
ISO 27001, ISO 27018, SOC 2, and other regulations and industry standards include
authentication-related requirements, (for example, Multi-Factor Authentication (MFA) for
accessing production systems, and the logging of all administrative sessions). In addition
to other requirements, using SPS and RADIUS server helps you comply with the following
requirements:
l PCI DSS 8.3: Secure all individual non-console administrative access and all remote
access to the cardholder data environment (CDE) using MFA.
l PART 500.12 Multi-Factor Authentication: Covered entities are required to apply
MFA for:
l Each individual accessing the covered entity’s internal systems.
l Authorized access to database servers that allow access to nonpublic
information.
l Third parties accessing nonpublic information.
l NIST 800-53 IA-2, Identification and Authentication, network access to privileged
accounts: The information system implements MFA for network access to
privileged accounts.
In order to successfully connect SPS with RADIUS server, you need the following
components.
In RSA:
l RADIUS access parameters, (for example, host, port, and a shared secret). You will
need it to configure the SPS plugin.
l Your users must be enrolled in the RADIUS server or its backend.
l Only CHAP and PAP authentication methods are supported.
In SPS:
l A copy of the SPS RADIUS (RSA) Multi-Factor Authentication plugin. This plugin is an
Authentication and Authorization (AA) plugin customized to work with the RADIUS
(RSA) multi-factor authentication service.
l SPS supports AA plugins in the MSSQL, RDP, SSH, and Telnet protocols.
l In RDP, using an AA plugin together with Network Level Authentication in a
Connection Policy has the same limitations as using Network Level Authentication
without domain membership.
l In RDP, using an AA plugin requires TLS-encrypted RDP connections. For details,
see Enabling TLS-encryption for RDP connections in the Administration Guide.
The SPS RADIUS (RSA) Multi-Factor Authentication plugin is available for download as-is,
free of charge to every SPS customer from the RADIUS Multi-Factor Authentication plugin
for SPS page. In case you need any customizations or additional features, contact our
Support Team.
The following figure illustrates how SPS and RADIUS server interwork with each other.
If SPS is integrated with RADIUS server, the interaction of the two products consists of the
following steps:
Notable features
l To map the gateway usernames to the external RADIUS server identities if the
gateway usernames are different from the RADIUS server usernames, configure the
[USERMAPPING] on page 26 section of the plugin.
l The [WHITELIST] on page 22 section allows configuring authentication whitelists and
blacklists for example to create break-glass access for specific users to allow them to
bypass RADIUS server authentication.
l The [authentication_cache] on page 21 section contains the settings that determine
how soon after performing a RADIUS server authentication must the user repeat the
authentication when opening a new session.
l The [connection_limit by=client_ip_gateway_user] on page 20 section contains the
options related to limiting parallel sessions.
l This plugin supports the RADIUS Access-Challenge response and therefore the RSA
SecurID next token mode. For details, see Detailed overview of SPS interworking
with RADIUS server.
Prerequisites:
The users you want to authenticate with SPS must have an activated account in RSA.
For details on adding or importing your users, see Integrating LDAP Directories in
RSA Authentication Manager Administrator's Guide in the RSA documentation.
Optionally, you can create a Multi-factor Policy in RSA to enable MFA only for the
group of users who you want to authenticate with SPS.
For details, see Policy Enforcement in RSA Authentication Manager Administrator's
Guide in the RSA documentation.
RADIUS access parameters, (for example, host, port, and an RSA shared secret).
Prerequisites:
l Your RADIUS secret and other RADIUS server parameters that are required for
configuration.
l Administrator access to SPS.
l Make sure that you have all the required components listed in Technical
requirements on page 7.
SPS customers can download the official plugin from the Support Portal. The not
officially supported plugins are also available on GitHub.
Upload the plugin to SPS. For details, see the Using a custom Authentication and
Authorization plugin to authenticate on the target hosts in the Administration Guide.
The plugin includes a default configuration file, which is an ini-style configuration file
with sections and name=value pairs. You can edit this configuration file on the
Policies > with sections and name=value pairs. You can edit this configuration file
on the Policies > AA AA Plugin Configurations page of the SPS web interface.
a. Configure the usermapping settings if needed. SPS must find out which RSA
user belongs to the username of the authenticated connection. For that, it can
query your LDAP/Microsoft Active Directory server. For details, see
[USERMAPPING] on page 26.
This section describes the available options of the SPS RSA plugin.
The plugin uses an ini-style configuration file with sections and name=value pairs. This
format consists of sections, led by a [section] header and followed by name=value entries.
Note that the leading whitespace is removed from values. The values can contain format
strings, which refer to other values in the same section. For example, the following section
would resolve the %(dir)s value to the value of the dir entry (/var in this case).
[section name]
dirname=%(dir)s/mydirectory
dir=/var
All reference expansions are done on demand. Lines beginning with # or ; are ignored and
may be used to provide comments.
You can edit the configuration file from the SPS web interface. The following code snippet is
a sample configuration file.
[radius]
server=<radius-server-ip-or-hostname>
port=1812
secret=$
auth_type=pap
conn_retries=3
conn_timeout=5
[auth]
prompt=Press Enter for push notification or type one-time password:
disable_echo=no
[connection_limit by=client_ip_gateway_user]
limit=0
######[WHITELIST]######
[whitelist source=user_list]
name=<name-of-user-list-policy>
[whitelist source=ldap_server_group]
allow=no_user
except=<group-1>,<group-2>
######[USERMAPPING]######
[usermapping source=explicit]
<user-name-1>=<id-1>
<user-name-2>=<id-2>
[usermapping source=ldap_server]
user_attribute=description
[username_transform]
append_domain=<domain-without-@-character>
[ldap_server]
name=<name-of-LDAP-server-policy>
[credential_store]
name=<name-of-credential-store-policy-that-hosts-sensitive-data>
[logging]
log_level=info
[https_proxy]
server=<proxy-server-name-or-ip>
port=3128
[question_1]
prompt=<prompt-to-show-to-the-user>
key=<target-key-for-the-answer>
disable_echo=yes
[radius]
This section contains the options related to your RADIUS (RSA) connectivity.
Declaration
[radius]
server=<radius-server-ip-or-hostname>
port=1812
secret=<$-or-shared-secret-with-radius-server>
auth_type=pap
conn_retries=3
conn_timeout=5
server
Type: string
Required: yes
Default: N/A
Description: The name of your server where the RADIUS interface is available. Enter either
the IP address or the hostname.
secret
Type: string
Required: yes
Default: N/A
Description: Your RADIUS shared secret. SPS uses this to communicate with the RADIUS
server. For details on using a local Credential Store to host this data, read Store sensitive
plugin data securely.
port
Type: integer
Required: no
Default: 1812
Description: The port where the RADIUS server is listening for access requests.
auth_type
Required: no
Default: pap
conn_timeout
Required: no
Default: 10
conn_retries
Type: integer
Required: no
Default: 3
Description: Number of times to retry sending a RADIUS request if the communication fails.
[auth]
This section contains the options related to authentication.
Declaration
[auth]
prompt=Press Enter for push notification or type one-time password:
disable_echo=yes
Type: string
Required: no
Description: SPS displays this text to the user in a terminal connection to request an OTP
interactively. The text is displayed only if the user uses an OTP-like factor, and does not
send the OTP in the connection request.
disable_echo
Required: no
Default: no
Description: For better security, you can hide the characters (OTP or password) that the
user types after the prompt. To hide the characters (replace them with asterisks), set
disable_echo to yes.
[connection_limit by=client_ip_
gateway_user]
This section contains the options related to limiting parallel sessions.
Declaration
[connection_limit by=client_ip_gateway_user]
limit=0
limit
Type: integer
Required: no
Default: 0
[authentication_cache]
This section contains the settings that determine how soon after performing a 2FA/MFA
authentication the user must repeat the authentication when opening a new session.
After the first RADIUS server authentication of the user, SPS will not request a new RADIUS
server authentication from the user as long as the new authentications happen within soft_
timeout seconds from each other. After the hard_timeout expires (measured from the first
RADIUS server login of the user), SPS will request a new RADIUS server authentication.
In other words, after opening the first session and authenticating on the RADIUS server,
the user can keep opening other sessions without having to authenticate again on the
RADIUS server as long as the time between opening any two sessions is less than soft_
timeout, but must authenticate on the RADIUS server if hard_timeout expires.
Declaration
[authentication_cache]
soft_timeout=15
hard_timeout=90
reuse_limit=5
soft_timeout
Default: N/A
Min value: 0
hard_timeout
Default: N/A
Min value: 0
Description: The time in seconds after which the SPS plugin requires a new RADIUS server
authentication for the next new session of the user. The time is measured from the last
RADIUS server authentication of the user.
reuse_limit
Required: Optional
Default: 0
Min value: 0
Description: The number of times that you can reuse the authentication cache before the
SPS plugin requires from you a new authentication for the next session. The default is 0,
which means that the authentication cache is not unlimited, but it is turned off.
In the example, if reuse_limit is set to 5, and you successfully authenticated with multi-
factor authentication, the next 5 authentications are bypassed in the next 90 seconds
(hard_timeout), if there is no gap bigger than 15 seconds (soft_timeout) between the
authentications.
If any of the hard_timeout, soft_timeout, or reuse_limit parameters, which operate
independently from one another, exceed the configured limit, the SPS plugin requires you
to authenticate for the new session.
[WHITELIST]
Having to perform multi-factor authentication to a remote server every time the user opens
a session can be tedious and inconvenient for the users, and can impact their productivity.
[whitelist source=user_list]
The [whitelist source=user_list] section allows whitelisting users based on a User List
policy configured in SPS (Policies > User Lists). To enable this whitelist, configure one of
the use cases below.
NOTE: The user names are compared to the User List in a case-sensitive manner.
Declaration
[whitelist source=user_list]
name=<name-of-user-list-policy>
For details on creating user lists, see Creating and editing user lists in the
Administration Guide.
name
Type: string
Required: no
Default: N/A
Description: The name of a User List policy containing gateway users configured on SPS
(Policies > User Lists). You can use this option to selectively require multi-factor
authentication for your users (for example, to create break-glass access for specific users).
To allow specific users to connect without providing RADIUS server credentials, the
User List policy should have the following settings:
l Set Allow to No user and list the users in the Except list.
l Then type the name of this User List policy as the value of the name
parameter.
To enforce RADIUS server authentication for selected users, the User List policy
should have the following settings:
l Set Allow to All users and list the users in the Except list.
l Then type the name of this User List policy as the value of the name
parameter.
[whitelist source=ldap_server_group]
The [whitelist source=ldap_server_group] section allows whitelisting users based on
LDAP Server group membership. To enable this whitelist, configure one of the use
cases below.
NOTE: The user names and groups are compared in LDAP in a case-insensitive manner.
Declaration
[whitelist source=ldap_server_group]
allow=<no_user-or-all_users>
except=<group-1>,<group-2>
allow
Required: no
Default: N/A
except
Type: string
Required: no
Default: N/A
Description: This parameter defines those specific LDAP/AD group(s) that are exempt from
the rule defined by the allow parameter.
[whitelist source=ldap_server_group]
allow=<no_user>
except=<group-1>,<group-2>
You must configure the name of the LDAP Server policy in the [ldap_server] section.
Use case #2: Allow all users except members of specific group(s)
[whitelist source=ldap_server_group]
allow=<all_users>
except=<group-1>,<group-2>
You must configure the name of the LDAP Server policy in the [ldap_server] section.
The Explicit method has priority over the LDAP server method.
If you have configured neither the append_domain parameter nor any of the [USERMAPPING]
sections, SPS assumes that the external RADIUS server identity of the user is the same as
the gateway username.
[usermapping source=explicit]
To map the gateway user name to an external RADIUS server identity, configure the
following name-value pairs.
[usermapping source=explicit]
<example-user-1>=<ID-1>
<example-user-2>=<ID-2>
<exampleuser>
Type: string
Required: no
Default: N/A
Description: To map the gateway user name to an external RADIUS server identity,
configure the name-value pairs in the following way:
NOTE: Use this option only if there are not only a few users, or for testing purposes. If
there are too many users, it can cause performance issues.
[usermapping source=ldap_server]
To look up the external RADIUS server identity of the user from an LDAP/Active
Directory database, configure the [usermapping source=ldap_server] section of the SPS
RADIUS plugin.
Declaration
[usermapping source=ldap_server]
user_attribute=description
You must configure the name of the LDAP Server policy in the [ldap_server] section.
If you configure both the append_domain parameter in the [username_transform] section
and the [usermapping source=ldap_server] section of the SPS RADIUS plugin, SPS
appends the @ character and the value of the append_domain parameter to the value
retrieved from the LDAP database.
user_attribute
Type: string
Default: N/A
[username_transform]
This section contains username transformation-related settings.
Declaration
[username_transform]
append_domain=<domain-without-@-character>
If you have configured [USERMAPPING], the [username_transform] process will run after the
[USERMAPPING] process.
append_domain
Required: no
Default: N/A
Description:
If the RADIUS server service requires the use of domain name in the external RADIUS
server identity, configure the append_domain parameter in the [username_transform]
section. In this case, SPS automatically appends the @ character and the value of this
option to the username from the session, and uses the resulting username on the RADIUS
server to authenticate the user. For example, if the domain is set to append_domain:
example.com and the username is Example.User, the SPS plugin will look for the user
[email protected] on the RADIUS server server.
If you configure both the append_domain parameter in the [username_transform] section
and the [usermapping source=ldap_server] section of the SPS RADIUS plugin, SPS
appends the @ character and the value of the append_domain parameter to the value
retrieved from the LDAP database.
Declaration
[ldap_server]
name=<name-of-LDAP-server-policy>
name
Type: string
Required: conditional
Default: N/A
Description: The name of a configured LDAP Server policy in SPS. For details on configuring
LDAP policies, see Authenticating users to an LDAP server in the Administration Guide.
[credential_store]
This section contains settings related to storing sensitive information of the plugin.
Declaration
[credential_store]
name=<name-of-credential-store-policy-that-hosts-sensitive-data>
name
Type: string
Required: no
Default: N/A
Description: The name of a local Credential Store policy configured on SPS. You can use
this Credential Store to store sensitive information of the plugin in a secure way (for
example, the secret value in the [radius] section).
[logging]
This section contains logging-related settings.
Declaration
[logging]
log_level=info
log_level
Required: no
Default: info
Description: The logging verbosity of the plugin. The plugin sends the generated log
messages to the SPS syslog system. You can check the log messages in the Basic settings
> Troubleshooting > View log files section of the SPS web interface. To show only the
messages generated by the plugins, filter on the plugin: string.
The possible values are:
l debug
l info
l warning
l error
l critical
For details, see Python logging API's log levels: Logging Levels.
[https_proxy]
This section contains HTTPS proxy-related settings.
[https_proxy]
server=<proxy-server-name-or-ip>
port=3128
server
Type: string
Required: no
Default: N/A
name
Type: integer
Required: no
Default: 3128
[question_1]
NOTE: To configure this optional section, contact our Support Team.
To request additional information from the user (for example, ticket number), define one
or more [question_] section (for example, [question_1], [question_2]). The user input
will be stored under the value of key in the questions section of the session cookie.
Description: Used for communication between plugins. This is an interactive
request/response right after authentication in order to supply data to Credential
Store plugins. The question is transferred to the session cookie and all hooks of all
plugins receive it.
For example, if you have an external authenticator app, you do not have to wait for the
question to be prompted but can authenticate with a one-time password:
ssh otp=123456@root@scb
Name subsequent questions with the appropriate number (for example, [question_1],
[question_2], and so on).
prompt
Type: string
Required: yes
Default: N/A
key
Type: string
Required: yes
Default: N/A
disable_echo
Required: no
Default: no
Description: Whether the answer to the question is visible (yes), or replaced with
asterisks (no).
By default, the configuration of the plugin is stored on SPS in the configuration of SPS.
Make sure that you store the sensitive parameters (for example, secret) of the plugin in an
encrypted way.
1. Log in to SPS, navigate to Policies > Credential Stores and create a Local
Credential Store. For details, see Configuring local Credential Stores in the
Administration Guide.
Instead of usernames and passwords, you will store the configuration parameters of
the plugin in this Credential Store.
2. Add the plugin parameters you want to store in an encrypted way to the Credential
Store. You can store any configuration parameter of the plugin in the Credential
Store, but note that if an option appears in the Credential Store, the plugin will use it.
If the same parameter appears in the configuration of the plugin, it will be ignored.
l Enter the name of the configuration section without the brackets in the Host
field (for example, radius).
l Enter the name of the plugin parameter in the Username field (for
example, secret).
l Enter the value of the plugin parameter in the Passwords field.
l Click .
3. Navigate to the configuration of the plugin on the Policies > AA Plugin
Configurations page.
4. In the plugin configuration file, enter the name of the local Credential Store under the
[credential_store] section as the value of the name parameter.
5. Enter $ as the value of the parameter storing sensitive data.
Example:
ssh otp=YOUR-ONE-TIME-PASSWORD@user@server
2. If SPS prompts you for further information, enter the requested information. If you
need to authenticate with an OTP, but you have not supplied the OTP in your
username, you will be prompted to enter the OTP.
3. Authenticate on the server.
4. If authentication is successful, you can access the server.
Example:
Example:
About us
One Identity solutions eliminate the complexities and time-consuming processes often
required to govern identities, manage privileged accounts and control access. Our solutions
enhance business agility while addressing your IAM challenges with on-premises, cloud and
hybrid environments.
Contacting us
For sales and other inquiries, such as licensing, support, and renewals, visit
https://www.oneidentity.com/company/contact-us.aspx.