Authentication Policy#
AAA → APAuthentication Policies
An AuthenticationPolicy defines parameters that apply to logged-in users and to the way authentication is performed on the node. It covers password complexity rules, lockout behavior after failed login attempts, idle timeout, and the order in which authentication methods are attempted (including remote AAA via ServerGroup resources and local authentication).
Multiple authentication methods#
Using external authentication servers enables robust integration with existing permission management systems. Two well-known external authentication protocols are TACACS+ and RADIUS: instead of configuring individual user accounts on each network element, these authentication methods allow centralized user and permission management, as well as logging what a user does for auditing purposes.
While this has obvious benefits, some network designs may require multiple authentication methods to be attempted. One of the most common use-cases for multiple authentication methods is the so-called "emergency access account".
Emergency access accounts
If the centralized authentication servers become unreachable or compromised, users can no longer log into the network elements. An emergency access account is a locally configured user account that is not used during regular operation, but is a last resort for gaining access to the network elements.
The authenticationOrder property of the AuthenticationPolicy determines which authentication methods are attempted, and in what order. For example:
- First try RADIUS server A
- Then try TACACS servers B and C
- Finally, try local user authentication
The exitOnReject boolean controls whether to continue to the next method after a rejection. When exitOnReject is True, a rejection from one authentication method stops the chain and no further methods are tried.
exitOnReject should be set to True when subsequent authentication methods must be used only if the servers in the current ServerGroup are unreachable. When it is False, methods are tried in order until one accepts the authentication request or the list is exhausted. The following diagram illustrates the behavior when a local user 'admin' tries to log in:
flowchart LR
A[RADIUS servers] -->|exitOnReject=True| X
A -->|exitOnReject=False| B
B[TACACS servers] -->|exitOnReject=True| Y
B -->|exitOnReject=False| C
C[Local authentication]
X[Deny access]
Y[Deny access] Referenced resources#
ServerGroup#
An AuthenticationPolicy refers to ServerGroup resources via authenticationOrder.serverGroupOrder. That field lists ServerGroup names in the order they are used for authentication.
Examples#
Custom Resource Definition#
To browse the Custom Resource Definition go to crd.eda.dev.
AuthenticationPolicy
SPEC
An AuthenticationPolicy defines parameters that relate to node users, such as password complexity, lockout timers, and the order in which authentication methods are attempted on the node.
-
Authentication order.
-
When set to True, a reject of an authentication server will result in the user being denied access. When set to False, upon reject the node will try the next authentication method in the authentication order.
-
Local authentication priority.
default: "First"enum: "First", "Last", "Disabled" -
List of ServerGroups that define the order in which authentication happens.
-
-
Determines how long a user can be idle for before they are logged out (in minutes). When set to zero, users are never logged out.
range: 0 to 1440 -
Lockout policy.
-
How many failed login attempts are allowed, set to zero for unlimited attempts.
range: 0 to 64 -
How many minutes the user will be locked out for, set to zero for indefinite (until manually unlocked).
range: 0 to 1440 -
The time window for failed attempts to occur in (in minutes).
range: 0 to 60
-
-
Selects TopoNodes on which to configure the AuthenticationPolicy.
-
List of TopoNodes on which to configure the AuthenticationPolicy.
-
Password complexity rules.
-
Whether to allow the username to be part of the password.
-
The maximum length of sequential characters in the password. For example, abcd is a sequence of 4 sequential keys.
range: 2 to 8 -
The minimum length of the password.
range: 6 to 12 -
The minimum amount of lowercase characters in the password.
range: 0 to 10 -
The minimum amount of numeric characters in the password.
range: 0 to 10 -
The minimum amount of special characters in the password.
range: 0 to 10 -
The minimum amount of uppercase characters in the password.
range: 0 to 10 -
How many repeated characters are allowed.
range: 2 to 8
-
STATUS
AuthenticationPolicyStatus defines the observed state of AuthenticationPolicy.
-
List of nodes this authentication policy has been applied to