Important:You must consider the following points while configuring the risk-based authentication:
A rule must be included in a risk policy. A rule can exist in multiple risk policies.
A risk-based authentication class maps to only one risk policy and vice versa.
If a rule condition is not met, the score associated with that rule is added to the risk score. If the rule condition is met, the specified action is executed.
The risk level is determined based on the total risk score, that is the sum of the scores of all rule conditions that are not met.
If a rule is configured to allow or deny access and exit the policy when a condition is met, the risk score is zero as other rules in the group are not evaluated.
Configuring risk-based authentication involves the following steps:
Create a risk policy. See Configuring a Risk Policy.
Create a method for the risk-based authentication class. See Configuring a Method for an Authentication Class.
Create a contract for the risk-based authentication class. See Configuring a Contract for an Authentication Class.
Prerequisites: Before creating a risk-based policy, determine the following criteria for defining a rule:
The application or resource you want to protect.
The parameters you want to assess during a login attempt.
The risk score for each parameter.
The risk levels for risk scores.
The action for the risk levels.
If you want to record the details of risk assessment.
If you want to store history details from the risk assessment in an external database.
If you want to perform profiling on user login events based on the geolocation of the user.
If you want to assess the risk before a user attempts to login.
Configuring a risk policy includes the following three parts:
Adding a Risk Policy
Click Policies > Risk-based Policies > Risk Policy.
Click the Create Risk Policy icon.
To create an identical copy of any existing risk policy:
|
Under Add Risk Policy, specify the following details:
Field |
Description |
---|---|
Risk Policy Name |
Specify a name for the policy. |
Policy Description |
Specify the purpose of this policy. |
Assign Policy To |
Select Identity Server cluster and then select an authentication class. You can select the class from the list of existing classes or you can create a new class. If you select an existing class, this policy overwrite settings of the selected class. To modify an existing class, go to Identity Server > cluster > Edit > Local > Classes. To create a new class, see Creating a Risk-based Authentication Class:. |
Creating a Risk-based Authentication Class: Perform the following steps:
Select one of the following options:
Create Risk-based Auth Class: Calculates the risk score after authentication. See Risk Assessment and Risk Mitigation after Authenticating a Login Attempt.
Create Risk-based Pre-Auth Class: Calculates the risk score before authentication. See Risk Assessment and Risk Mitigation before Authenticating a Login Attempt.
Specify a name for the class.
Select Record User History to record the user’s login details.
Before enabling this option, ensure that you have enabled recording user history in Policies > Risk Configuration > User History and configured a database. See History.
NOTE:The Record User History option is available only for Risk-based Auth Class.
Select Use Cumulative Risk Score to add current risk score of the session to this evaluation.
If you select this option, ensure that you have defined appropriate risk levels in this class to accommodate the cumulative value. See Cumulative scoring.
To send user name, risk score, and risk level of a specific login attempt to an external REST interface, click Score Sharing URLs and specify the URL of the interface. The external REST interface uses this score information to perform additional actions on the user’s identity.
(Optional) Specify the REST endpoint authentication credential. When the risk score is sent to the REST endpoint, the endpoint sends these credentials as a basic authentication header. If the REST endpoint is protected using basic authentication, this credential is used.
If Reduce Score is enabled, the reduced risk score is sent to the REST endpoint for a successful additional authentication.
After enabling Score Sharing URLs, you must enable the identified risk scores for sharing.
You can enable two Score Sharing URLs. If the REST endpoint is down, a warning message is logged in the log file, catalina.out. If the REST endpoint is down during risk score sharing, the risk is not cached and is not be shared later.
NOTE:The Score Sharing URLs option is available only for Risk-based Auth Class.
Continue with Configuring Policy Rules.
Configuring Policy Rules
You can assign multiple rules to a policy. Select a rule from existing rules or create a new rule. You can also create a rule here: Policies > Risk-based Policies > Rules > New. See Configuring Rules.
The rules are executed in the top to bottom sequence. You can drag and drop to change the priority and sequence of rules. Rules for which the action is defined as Allow Access, Deny Access, or Exit with Risk Level as specified risk level are executed as specified in the rule irrespective of the risk score accumulated for other rules that previously failed.
For each rule you want to add to a policy, perform the following steps:
To create a new rule, perform the following actions:
Click Actions > Create Rule.
Specify a rule name and select a rule definition. For details, see Configuring Rules.
Click OK.
Define actions for the rule.
Condition |
Action |
---|---|
If rule condition is met |
Select any of the following options: Proceed to Next Rule: The next rule in the sequence is executed. Allow Access and Exit Policy: No other rules of this policy are executed and the user gets access to the resource. Deny Access and Exit Policy: No other rules of this policy are executed and the user is denied access. Exit with Risk Level as: Select a risk level. You can also create a risk level and then assign it to the rule. No other rules in this policy are executed. The action specified for that risk level is executed. To create a risk level, see See Configuring Risk Levels. |
If rule condition is not met, add risk score |
Specify the risk score that will be stored when the rule evaluation fails. |
To select a rule from the existing list, perform the following actions:
Under Policy Rules, click Actions > Add Existing Rule.
In Risk Rule, select the rule you want to add from the list.
Define actions for the rule. For details, see Step 1.d.
NOTE:To validate the rule configuration and view the result, click Actions > Toggle Validate. See How to Use the Validate Tool to Emulate Total Risk Score and Risk Levels.
Continue with Configuring Risk Levels.
Configuring Risk Levels
Under Risk Levels, click Actions > Add Risk Level.
Specify the following details:
Field |
Description |
---|---|
Risk Level |
Select a risk level to associate with the risk score. If you select Other, specify a name to identify the custom risk level. |
Risk Score |
Specify a risk score to be associated with the risk level. The risk score indicates a value that is stored in the database after rule evaluation fails. |
Action |
Select an action for this risk score. If you select Additional Authentication under Action, you can select multiple classes and methods to configure additional authentication. Use a method for additional authentication when branding, overwriting of users, or a change of userstore is required. If the userstore of the additional authentication is same as the risk-based authentication class and no additional branding is needed, then use a class. The following are examples when you can configure multiple classes and methods:
|
Reduce Score |
After a successful additional authentication, you can configure to reduce the associated risk score. Specify the value that you want to reduce from the risk score. See Risk score reduction after a successful additional authentication. |
Share Score |
Select this option to send the risk score of this risk level to the URL specified in Score Sharing URLs in the associated authentication class. You can share risk scores only for the risk levels configured for Risk-based Auth Class. This option is available only if at least one Share Score URLs is configured for the authentication class. |
Continue with Configuring a Method for an Authentication Class.
Click Local > Method > New to create a new method for the risk based authentication class.
Specify a name to identify the method.
Select the risk-based authentication class from Class.
Deselect Identifies User.
NOTE:If the policy is using Risk-Based Pre-Auth Class, this options must be selected at least in one method of the contract.
Select a user store from the list of Available User Stores.
IMPORTANT:In a risk-based authentication class, properties configured for the risk-based authentication method are ignored. So, if you want to configure additional properties, add the property to the risk-based authentication class.
Continue with Configuring a Contract for an Authentication Class.
Click Local > Contract > New to create a new contract for the risk based authentication class.
Specify a name to identify the contract.
You can use an existing authentication contract or create a new authentication contract. For example, for Risk-based Auth Class, you can add the default Name/Password – Form method as the first method and risk-based authentication method as the second method. For Risk-based Pre-Auth Class, the risk-based authentication method must be configured as the first method.
Click Next to configure a card for the contract. For more information about configuring contracts, see Section 5.1.4, Configuring Authentication Contracts.
NOTE:To use this contact in federation, ensure to assign this to a protected resource.
Access Manager provides the following risk rules:
Rule |
Description |
---|---|
IP Address |
Use this rule to define a condition to track login attempts from an IP address, range of IP addresses, an IP subnet range, or a list of IP addresses from an external provider. For example, If you are aware that login attempts from a specific range of IP addresses are riskier, you can define a rule to watch for such login attempts. When a request originates from the specified IP address range, you can prompt for additional authentication. IMPORTANT:You cannot create a rule using the IP subnet condition. Instead you can use the IP address range condition to select a range of IP addresses in the rule. NOTE:The IP address might not be the clients IP address, but that of an intermediate device. In such a case, use X-Forwarded-For to determine the IP address of the workstation |
Cookie |
Use this rule if you want to track login attempts from a browser-based application that has a specific cookie value or name. For example: You have a financial application and a user accessing this application has cookies stored on the browser. If the cookie has a specific value or name, the user is granted access without additional authentication. If the user accessing the application has no cookies stored, then you can request additional authentication to validate the user. |
HTTP Header |
Use this rule to track the HTTP header of requests based on the name or the value contained in the HTTP header. For example, if you want to track HTTP requests containing custom HTTP header information, you can define the action to be performed on evaluation of this rule. |
User Last Login |
This rule creates a cookie in the browser after a successful step up authentication. Subsequent login verifies this cookie. Use this rule to define the validity duration for the cookie. After the specified time, the user is prompted for additional authentication. For example, you can use this rule to evaluate if a user logs in by using a device that was used earlier for login. You can define the risk level and also request additional authentication, as necessary. |
User Profile |
Use this rule to define a condition based on the LDAP attribute of the user. For example, you can define a rule to deny access if the employee ID of the user matches a specific string. |
User Time of Login |
Use this rule to define a condition based on the user’s attempts to login at a specific time. For example, if the usual login pattern for an employee is between 9 a.m. to 5 p.m., you can define a rule that takes an action if the login pattern differs from the observed pattern. |
Device Fingerprint |
Use this rule to uniquely identify and control the type of device from which a user could log in to the applications secured by Access Manager. When a user log in the first time from a device and device fingerprint is not available for that device, a risk is added and Access Manager can be configured to prompt for an additional authentication. After the first successful authentication, a device fingerprint is calculated based on the parameters configured in the Device Fingerprint rule. In subsequent login attempts, Access Manager verifies device fingerprint parameters configured in the Device Fingerprint rule. You cannot add more than one Device Fingerprint rule per Access Manager setup. For more information about device fingerprinting, see Device Fingerprinting. |
External Parameters |
Use this rule to consider inputs from external providers to evaluate the risk associated with a login attempt. For example, if a user is already authenticated with an external authentication provider, Access Manager receives authentication details from that provider such as the method used for the authentication. Access Manager can use this information for evaluating the risk. |
Geolocation |
Use this rule to track login attempts based on a user’s geographical location. You can track details ranging from a wide area such as a country or to a smaller area such as a region. For example, you can use this rule to introduce additional authentication attempts in the following scenarios:
|
Geo-Velocity Tracker |
Use this rule to check a user’s current time and location compared to the time and location of the last login. Access Manager supports only country as the location for this rule. The last login details are picked from the history database. If the time between the last successful login and the current login attempt is less than the shortest possible travel time, you can configure the following actions:
For example, a user logged in at 2 p.m. IST in Bangalore and tries to re-login at 5 p.m. IST from Hong Kong. Reaching Hong Kong in three hours from Bangalore is not possible. To mitigate such malicious login attempts, you can configure a policy using this rule to ask for an additional authentication or deny the access. For more information, see Scenario: Determining an Improbable Travel Event. |
Custom Rule |
Use this rule to define your own custom rules by using a custom Java authentication class. This is useful in deployments where the existing rules do not meet the requirements. For example, an HTTP header contains the company name in an encoded format. You can create a custom rule to decode this HTTP header and retrieve the name of the company. You can compare this value with an LDAP attribute and decide an action based on results. For information about creating a custom class, see the NetIQ Access Manager SDK Guide. |
To create a rule, perform the following steps:
Click Policies > Risk-based Policies > Rules > New.
Specify a name for the rule and select a rule type in Rule Definition based on your requirement.
Configure the following rules as required:
|
IP Address Rule |
IMPORTANT:You cannot specify the IP subnet in the IPv6 format. Instead, you can use the IP range condition and define it in the IPv6 format. |
Cookie Rule |
A cookie is set when a user authenticates using second-factor authentication. The cookie is not created if the risk is low and the user authenticates using primary authentication method.
|
HTTP Header Rule |
|
User Profile Rule |
|
User Last Login Rule |
IMPORTANT:The User Last Login cookie is set only when a user is authenticated by using second-factor authentication. This cookie is not created if the risk is assessed to be low and the user authenticates by using the primary authentication method. |
User Time of Login |
|
NOTE:: In Access Manager 4.5 Service Pack 3 and 5.0, the User Time of Login rule considers Coordinated Universal Time (UTC) in calculations. To use the local time instead of UTC, perform the following steps:
Edit Identity Server’s tomcat.conf file. For information about how to edit a file, see Modifying Configurations.
Comment out the following java option by adding #:
JAVA_OPTS="${JAVA_OPTS} -Duser.timezone=UTC"
However, these steps will change the time standard for OAuth logs from UTC to local time.
In other versions of Access Manager (5.0 Service Pack 1 and later, and earlier to 4.5 Service Pack 3), the rule uses the local time.
Device Fingerprint Rule |
|
Geolocation Rule |
|
Geo-Velocity Tracker Rule |
IMPORTANT:You must enable recording user history, configure a database, and configure a geolocation provider for this rule to work. See Configuring User History and Configuring Geolocation Profiling. |
External Parameters Rule |
|
Custom Rule |
|