Skip to content

AAA

AAA (Authentication, Authorization, and Accounting) on NX-OS encompasses TACACS+ server integration for centralized device management access, local user account management with role-based access control, and AAA method configuration for login authentication, command authorization, and accounting. TACACS+ configuration includes shared secret keys with encryption, timeout/retry/deadtime settings, source interface binding, individual server definitions with per-server authentication protocols (PAP, CHAP, MSCHAP, MSCHAPv2, ASCII), idle-time testing, and server groups with VRF-aware source interfaces and server member references. User management provides password strength policies, secure mode, passphrase length/lifetime/gracetime/warntime constraints, maximum concurrent login sessions, and individual user accounts with role assignments, password encryption types (clear, encrypt, pbkdf2, scrypt), account expiration, and shell type selection. Authentication settings control default and console login methods with group-based fallback, authorization defines config and exec command methods, and accounting tracks command usage via server groups.

Diagram
NameTypeConstraintMandatoryDefault Value
aaaClass[aaa]No

NameTypeConstraintMandatoryDefault Value
tacacsClass[tacacs]No
usersClass[users]No
authenticationClass[authentication]No
authorizationList[authorization]No
accountingClass[accounting]No

NameTypeConstraintMandatoryDefault Value
deadtimeIntegermin: 0, max: 1440No
descriptionStringNo
keyStringNo
key_encryptionChoice0, 6, 7No
retriesIntegermin: 0, max: 5No
source_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
source_interface_idStringNo
timeoutIntegermin: 1, max: 60No
serversList[servers]No
server_groupsList[server_groups]No

NameTypeConstraintMandatoryDefault Value
password_strength_checkBooleantrue, falseNo
password_secure_modeBooleantrue, falseNo
service_password_recoveryBooleantrue, falseNo
max_loginsIntegermin: 0, max: 7No
descriptionStringNo
userpassphraseClass[userpassphrase]No
accountsList[accounts]No

authentication (nxos.devices.configuration.aaa)

Section titled “authentication (nxos.devices.configuration.aaa)”
NameTypeConstraintMandatoryDefault Value
default_roleChoiceno-login, assign-default-roleNo
radius_directed_requestBooleantrue, falseNo
tacacs_directed_requestBooleantrue, falseNo
login_default_groupsListStringNo
login_default_realmChoicelocal, radius, tacacs, ldapNo
login_default_fallbackBooleantrue, falseNo
login_default_localBooleantrue, falseNo
login_default_noneBooleantrue, falseNo
login_default_error_enableBooleantrue, falseNo
login_default_invalid_username_logBooleantrue, falseNo
login_console_groupsListStringNo
login_console_realmChoicelocal, radius, tacacs, ldapNo
login_console_fallbackBooleantrue, falseNo
login_console_localBooleantrue, falseNo
login_console_noneBooleantrue, falseNo
login_console_error_enableBooleantrue, falseNo
login_console_invalid_username_logBooleantrue, falseNo

authorization (nxos.devices.configuration.aaa)

Section titled “authorization (nxos.devices.configuration.aaa)”
NameTypeConstraintMandatoryDefault Value
command_typeChoiceconfig, execYes
groupsListStringNo
noneBooleantrue, falseNo
localBooleantrue, falseNo

accounting (nxos.devices.configuration.aaa)

Section titled “accounting (nxos.devices.configuration.aaa)”
NameTypeConstraintMandatoryDefault Value
groupsListStringNo
realmChoicelocal, radius, tacacs, ldapNo
noneBooleantrue, falseNo
localBooleantrue, falseNo

servers (nxos.devices.configuration.aaa.tacacs)

Section titled “servers (nxos.devices.configuration.aaa.tacacs)”
NameTypeConstraintMandatoryDefault Value
hostStringYes
descriptionStringNo
authentication_protocolChoicepap, chap, mschap, mschapv2, asciiNo
keyStringNo
key_encryptionChoice0, 6, 7No
test_idle_timeIntegermin: 0, max: 1440No
test_passwordStringNo
test_password_typeChoice0, 7No
test_usernameStringNo
portIntegermin: 1, max: 65535No
retriesIntegermin: 0, max: 5No
single_connectionBooleantrue, falseNo
timeoutIntegermin: 0, max: 60No

server_groups (nxos.devices.configuration.aaa.tacacs)

Section titled “server_groups (nxos.devices.configuration.aaa.tacacs)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
descriptionStringNo
deadtimeIntegermin: 0, max: 1440No
source_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
source_interface_idStringNo
vrfStringNo
serversList[servers]No

userpassphrase (nxos.devices.configuration.aaa.users)

Section titled “userpassphrase (nxos.devices.configuration.aaa.users)”
NameTypeConstraintMandatoryDefault Value
min_lengthIntegermin: 0, max: 65535No
max_lengthIntegermin: 0, max: 65535No
default_lifetimeIntegermin: 0, max: 99999No
default_gracetimeIntegermin: 0, max: 99999No
default_warntimeIntegermin: 0, max: 99999No
sequence_alphabet_lengthIntegermin: 0, max: 10No
sequence_keyboard_lengthIntegermin: 0, max: 10No
min_uniqueIntegermin: 0, max: 10No

accounts (nxos.devices.configuration.aaa.users)

Section titled “accounts (nxos.devices.configuration.aaa.users)”
NameTypeConstraintMandatoryDefault Value
usernameStringYes
descriptionStringNo
account_statusBooleantrue, falseNo
allow_expiredBooleantrue, falseNo
clear_password_historyBooleantrue, falseNo
emailStringNo
expirationStringNo
expiresBooleantrue, falseNo
first_nameStringNo
forceBooleantrue, falseNo
last_nameStringNo
passwordStringNo
password_encryption_typeChoiceclear, encrypt, pbkdf2, scrypt, unspecifiedNo
password_hashChoiceunspecified, pbkdf2, scryptNo
phoneStringNo
shell_typeChoicevsh, bashNo
unix_user_idIntegermin: 99, max: 15999No
rolesList[roles]No

servers (nxos.devices.configuration.aaa.tacacs.server_groups)

Section titled “servers (nxos.devices.configuration.aaa.tacacs.server_groups)”
NameTypeConstraintMandatoryDefault Value
hostStringYes
descriptionStringNo
orderIntegermin: 0, max: 16No

roles (nxos.devices.configuration.aaa.users.accounts)

Section titled “roles (nxos.devices.configuration.aaa.users.accounts)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
descriptionStringNo
privilege_typeChoiceno-data-priv, read-priv, write-privNo

Example 1: TACACS+ with single server and basic user account

nxos:
devices:
- name: LEAF1
configuration:
aaa:
tacacs:
timeout: 5
deadtime: 10
source_interface_type: mgmt
source_interface_id: "0"
servers:
- host: 10.50.100.10
description: Primary TACACS Server
key: "T@c@csK3y!"
key_encryption: "7"
users:
password_strength_check: true
accounts:
- username: admin
description: Network Admin
password: "N3tw0rkAdm!n"
password_encryption_type: scrypt
roles:
- name: network-admin

Example 2: Redundant TACACS+ with server group and multiple user accounts with RBAC

nxos:
devices:
- name: SPINE1
configuration:
aaa:
tacacs:
timeout: 5
deadtime: 15
source_interface_type: mgmt
source_interface_id: "0"
key: "Gl0b@lT@c@cs"
key_encryption: "7"
servers:
- host: 10.50.100.10
description: Primary TACACS Server
timeout: 3
- host: 10.50.100.11
description: Secondary TACACS Server
timeout: 3
server_groups:
- name: TACACS_SERVERS
description: Production TACACS+ Server Group
vrf: management
source_interface_type: mgmt
source_interface_id: "0"
servers:
- host: 10.50.100.10
order: 1
- host: 10.50.100.11
order: 2
users:
password_strength_check: true
password_secure_mode: true
max_logins: 4
accounts:
- username: admin
description: Primary Admin
password: "S3cur3P@ss!"
password_encryption_type: scrypt
roles:
- name: network-admin
- username: noc-operator
description: NOC Read-Only Operator
password: "N0cR3@d0nly!"
password_encryption_type: scrypt
roles:
- name: network-operator
privilege_type: read-priv
- username: backup-svc
description: Backup Service Account
password: "B@ckupSvc2025!"
password_encryption_type: scrypt
shell_type: bash
roles:
- name: network-operator

Example 3: Full AAA with authentication protocols, idle testing, passphrase policy, and account expiration

nxos:
devices:
- name: BORDER-LEAF1
configuration:
aaa:
tacacs:
timeout: 5
deadtime: 20
retries: 2
source_interface_type: mgmt
source_interface_id: "0"
key: "F@br!cT@c@cs"
key_encryption: "7"
servers:
- host: 10.50.100.10
description: DC1 Primary TACACS Server
authentication_protocol: chap
single_connection: true
test_idle_time: 5
test_username: test
test_password: "t3stP@ss"
test_password_type: "7"
- host: 10.50.100.11
description: DC1 Secondary TACACS Server
authentication_protocol: chap
single_connection: true
test_idle_time: 5
test_username: test
test_password: "t3stP@ss"
test_password_type: "7"
server_groups:
- name: TACACS_PRIMARY
description: Primary TACACS+ Server Group
vrf: management
source_interface_type: mgmt
source_interface_id: "0"
deadtime: 10
- name: TACACS_FALLBACK
description: Fallback TACACS+ Server Group
vrf: management
source_interface_type: mgmt
source_interface_id: "0"
users:
password_strength_check: true
password_secure_mode: true
userpassphrase:
min_length: 12
max_length: 127
default_lifetime: 180
default_gracetime: 7
default_warntime: 14
sequence_alphabet_length: 3
sequence_keyboard_length: 3
max_logins: 3
accounts:
- username: admin
description: Primary Admin
password: "Adm!nP@ss2025"
password_encryption_type: scrypt
roles:
- name: network-admin
- username: auditor
description: Security Auditor
password: "Aud!t0rAcc3ss"
password_encryption_type: scrypt
expires: true
expiration: "2026-12-31"
roles:
- name: network-operator
privilege_type: read-priv

Example 4: AAA authentication, authorization, and accounting with TACACS+ server groups

nxos:
devices:
- name: LEAF1
configuration:
aaa:
tacacs:
timeout: 5
deadtime: 10
source_interface_type: mgmt
source_interface_id: "0"
servers:
- host: 10.50.100.10
- host: 10.50.100.11
server_groups:
- name: TACACS_PRIMARY
vrf: management
servers:
- host: 10.50.100.10
order: 1
- host: 10.50.100.11
order: 2
authentication:
default_role: no-login
tacacs_directed_request: true
login_default_groups:
- TACACS_PRIMARY
login_default_realm: tacacs
login_default_fallback: true
login_default_local: true
login_default_error_enable: true
login_default_invalid_username_log: true
login_console_groups:
- TACACS_PRIMARY
login_console_realm: tacacs
login_console_local: true
authorization:
- command_type: config
groups:
- TACACS_PRIMARY
local: true
- command_type: exec
groups:
- TACACS_PRIMARY
local: true
accounting:
groups:
- TACACS_PRIMARY
realm: tacacs
local: true

AAA (Authentication, Authorization, and Accounting) on NX-OS encompasses TACACS+ server integration for centralized device management access and local user account management with role-based access control. TACACS+ configuration includes shared secret keys with encryption, timeout/retry/deadtime settings, source interface binding, individual server definitions with per-server authentication protocols (PAP, CHAP, MSCHAP, MSCHAPv2, ASCII), idle-time testing, and server groups with VRF-aware source interfaces. User management provides password strength policies, secure mode, passphrase length/lifetime/gracetime/warntime constraints, maximum concurrent login sessions, and individual user accounts with role assignments, password encryption types (clear, encrypt, pbkdf2, scrypt), account expiration, and shell type selection.

Diagram
NameTypeConstraintMandatoryDefault Value
aaaClass[aaa]No

NameTypeConstraintMandatoryDefault Value
tacacsClass[tacacs]No
usersClass[users]No

NameTypeConstraintMandatoryDefault Value
deadtimeIntegermin: 0, max: 1440No
descriptionStringNo
keyStringNo
key_encryptionChoice0, 6, 7No
retriesIntegermin: 0, max: 5No
source_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
source_interface_idStringNo
timeoutIntegermin: 1, max: 60No
serversList[servers]No
server_groupsList[server_groups]No

NameTypeConstraintMandatoryDefault Value
password_strength_checkBooleantrue, falseNo
password_secure_modeBooleantrue, falseNo
service_password_recoveryBooleantrue, falseNo
max_loginsIntegermin: 0, max: 7No
descriptionStringNo
userpassphraseClass[userpassphrase]No
accountsList[accounts]No

servers (nxos.devices.configuration.aaa.tacacs)

Section titled “servers (nxos.devices.configuration.aaa.tacacs)”
NameTypeConstraintMandatoryDefault Value
hostStringYes
descriptionStringNo
authentication_protocolChoicepap, chap, mschap, mschapv2, asciiNo
keyStringNo
key_encryptionChoice0, 6, 7No
test_idle_timeIntegermin: 0, max: 1440No
test_passwordStringNo
test_password_typeChoice0, 7No
test_usernameStringNo
portIntegermin: 1, max: 65535No
retriesIntegermin: 0, max: 5No
single_connectionBooleantrue, falseNo
timeoutIntegermin: 0, max: 60No

server_groups (nxos.devices.configuration.aaa.tacacs)

Section titled “server_groups (nxos.devices.configuration.aaa.tacacs)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
descriptionStringNo
deadtimeIntegermin: 0, max: 1440No
source_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
source_interface_idStringNo
vrfStringNo

userpassphrase (nxos.devices.configuration.aaa.users)

Section titled “userpassphrase (nxos.devices.configuration.aaa.users)”
NameTypeConstraintMandatoryDefault Value
min_lengthIntegermin: 0, max: 65535No
max_lengthIntegermin: 0, max: 65535No
default_lifetimeIntegermin: 0, max: 99999No
default_gracetimeIntegermin: 0, max: 99999No
default_warntimeIntegermin: 0, max: 99999No
sequence_alphabet_lengthIntegermin: 0, max: 10No
sequence_keyboard_lengthIntegermin: 0, max: 10No
min_uniqueIntegermin: 0, max: 10No

accounts (nxos.devices.configuration.aaa.users)

Section titled “accounts (nxos.devices.configuration.aaa.users)”
NameTypeConstraintMandatoryDefault Value
usernameStringYes
descriptionStringNo
account_statusBooleantrue, falseNo
allow_expiredBooleantrue, falseNo
clear_password_historyBooleantrue, falseNo
emailStringNo
expirationStringNo
expiresBooleantrue, falseNo
first_nameStringNo
forceBooleantrue, falseNo
last_nameStringNo
passwordStringNo
password_encryption_typeChoiceclear, encrypt, pbkdf2, scrypt, unspecifiedNo
password_hashChoiceunspecified, pbkdf2, scryptNo
phoneStringNo
shell_typeChoicevsh, bashNo
unix_user_idIntegermin: 99, max: 15999No
rolesList[roles]No

roles (nxos.devices.configuration.aaa.users.accounts)

Section titled “roles (nxos.devices.configuration.aaa.users.accounts)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
descriptionStringNo
privilege_typeChoiceno-data-priv, read-priv, write-privNo

Example 1: TACACS+ with single server and basic user account

nxos:
devices:
- name: LEAF1
configuration:
aaa:
tacacs:
timeout: 5
deadtime: 10
source_interface_type: mgmt
source_interface_id: "0"
servers:
- host: 10.50.100.10
description: Primary TACACS Server
key: "T@c@csK3y!"
key_encryption: "7"
users:
password_strength_check: true
accounts:
- username: admin
description: Network Admin
password: "N3tw0rkAdm!n"
password_encryption_type: scrypt
roles:
- name: network-admin

Example 2: Redundant TACACS+ with server group and multiple user accounts with RBAC

nxos:
devices:
- name: SPINE1
configuration:
aaa:
tacacs:
timeout: 5
deadtime: 15
source_interface_type: mgmt
source_interface_id: "0"
key: "Gl0b@lT@c@cs"
key_encryption: "7"
servers:
- host: 10.50.100.10
description: Primary TACACS Server
timeout: 3
- host: 10.50.100.11
description: Secondary TACACS Server
timeout: 3
server_groups:
- name: TACACS_SERVERS
description: Production TACACS+ Server Group
vrf: management
source_interface_type: mgmt
source_interface_id: "0"
users:
password_strength_check: true
password_secure_mode: true
max_logins: 4
accounts:
- username: admin
description: Primary Admin
password: "S3cur3P@ss!"
password_encryption_type: scrypt
roles:
- name: network-admin
- username: noc-operator
description: NOC Read-Only Operator
password: "N0cR3@d0nly!"
password_encryption_type: scrypt
roles:
- name: network-operator
privilege_type: read-priv
- username: backup-svc
description: Backup Service Account
password: "B@ckupSvc2025!"
password_encryption_type: scrypt
shell_type: bash
roles:
- name: network-operator

Example 3: Full AAA with authentication protocols, idle testing, passphrase policy, and account expiration

nxos:
devices:
- name: BORDER-LEAF1
configuration:
aaa:
tacacs:
timeout: 5
deadtime: 20
retries: 2
source_interface_type: mgmt
source_interface_id: "0"
key: "F@br!cT@c@cs"
key_encryption: "7"
servers:
- host: 10.50.100.10
description: DC1 Primary TACACS Server
authentication_protocol: chap
single_connection: true
test_idle_time: 5
test_username: test
test_password: "t3stP@ss"
test_password_type: "7"
- host: 10.50.100.11
description: DC1 Secondary TACACS Server
authentication_protocol: chap
single_connection: true
test_idle_time: 5
test_username: test
test_password: "t3stP@ss"
test_password_type: "7"
server_groups:
- name: TACACS_PRIMARY
description: Primary TACACS+ Server Group
vrf: management
source_interface_type: mgmt
source_interface_id: "0"
deadtime: 10
- name: TACACS_FALLBACK
description: Fallback TACACS+ Server Group
vrf: management
source_interface_type: mgmt
source_interface_id: "0"
users:
password_strength_check: true
password_secure_mode: true
userpassphrase:
min_length: 12
max_length: 127
default_lifetime: 180
default_gracetime: 7
default_warntime: 14
sequence_alphabet_length: 3
sequence_keyboard_length: 3
max_logins: 3
accounts:
- username: admin
description: Primary Admin
password: "Adm!nP@ss2025"
password_encryption_type: scrypt
roles:
- name: network-admin
- username: auditor
description: Security Auditor
password: "Aud!t0rAcc3ss"
password_encryption_type: scrypt
expires: true
expiration: "2026-12-31"
roles:
- name: network-operator
privilege_type: read-priv