RFC 9950: A YANG Data Model for Terminal Access Controller Access-Control System Plus (TACACS+)
- M. Boucadair, Ed.,
- B. Wu
Abstract
This document defines a Terminal Access Controller Access-Control System Plus (TACACS+) client YANG module that augments the System Management data model, defined in RFC 7317, to allow devices to make use of TACACS+ servers for centralized Authentication, Authorization, and Accounting (AAA). Specifically, the TACACS+ YANG module can be used to manage TACACS+ over TLS.¶
This document obsoletes RFC 9105.¶
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
The System Management data model [RFC7317] defines separate functionality to support local and Remote Authentication Dial-In User Service (RADIUS) authentication:¶
- User Authentication Model:
-
Defines a list of usernames with associated passwords and a configuration leaf to decide the order in which local or RADIUS authentication is used.¶
- RADIUS Client Model:
-
Defines a list of RADIUS servers used by a device for centralized user authentication.¶
[RFC9105] defines a YANG module
This document defines a YANG module for managing TACACS+ clients (Section 4), including TACACS+ over TLS 1.3 clients [RFC9887]. This document obsoletes [RFC9105].¶
The YANG module in this document conforms to the Network Management Datastore Architecture (NMDA) defined in [RFC8342].¶
2. Conventions and Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
Some examples in this document contain long lines that are wrapped as described in [RFC8792].¶
The terminology for describing YANG data models is defined in [RFC7950].¶
The document uses the terms defined in Section 2 of [RFC9887] and Section 3 of [RFC8907].¶
'client' refers to a TACACS+ client, while 'server' refers to a TACACS+ server.¶
2.1. Tree Diagrams
The tree diagrams used in this document follow the notation defined in [RFC8340].¶
3. Design of the TACACS+ Data Model
This module is used to configure a TACACS+ client on a device to support deployment scenarios with centralized AAA servers. Authentication is used to validate a user's username and password, authorization allows the user to access and execute commands at various privilege levels assigned to the user, and accounting keeps track of the activity of a user who has accessed the device.¶
The "ietf
The 'server' list, which is directly under the 'tacacs-plus' container, holds a list of TACACS+ servers and uses 'server-type' to distinguish between AAA services. The list of servers is for redundancy.¶
When there are multiple interfaces connected to a TACACS+ client or server, the source address of outgoing TACACS+ packets could be specified, or the source address could be specified through the interface IP address setting or derived from the outbound interface from the local Forwarding Information Base (FIB). For a TACACS+ server located in a Virtual Private Network (VPN), a VRF instance needs to be specified.¶
The 'statistics' container under the 'server' list is a collection of read-only counters for sent and received messages from a configured server.¶
The YANG module for TACACS+ client has the structure shown in Figure 1.¶
Specifically, the module is designed to cover the following key requirements specified in [RFC9887]:¶
The following new data nodes are supported compared to [RFC9105]:¶
- 'client
-credentials' and 'server -credentials' : -
Define a set credentials that can be globally provisioned and then referenced under specific servers.¶
- 'domain-name':
-
Provides a domain name of the server per Section 3.4.2 of [RFC9887]. This is the TLS TACACS+ server's domain name that is included in the SNI extension. This domain name is distinct from the IP address
/hostname used for the underlying transport connection.¶ - 'sni-enabled':
-
Controls activation of SNI (Section 3 of [RFC6066]). This parameter can be used only if a domain name is provided.¶
- 'client
-identity' : -
Specifies the identity credentials that the client may present when establishing a connection to a server. Client identities can be configured at the top level and then referenced for specific server instances. Alternatively, client identities can be configured explicitly under each server instance.¶
- 'server
-authentication' : -
Specifies how a client authenticates servers. Server credentials can be configured at the top level and then referenced for specific server instances. Alternatively, client identities can be configured explicitly under each server instance.¶
- 'hello-params':
-
Controls TLS versions and cipher suites to be used when establishing TLS sessions.¶
- 'discontinuity
-time' : -
The time of the most recent occasion at which the client suffered a discontinuity (a configuration action to reset all counters, re
-initialization, etc.).¶ - 'cert-errors':
-
Number of connection failures due to certificate issues.¶
- 'rpk-errors':
-
Number of connection failures related to raw public keys.¶
4. TACACS+ Client Module
This YANG module uses types and groupings defined in [RFC8341], [RFC8343], [RFC8529], [RFC9640], [RFC9641], [RFC9642], [RFC9645], and [RFC9911].¶
5. Operational Considerations
The same operational considerations discussed in Section 6 of [RFC9887] apply for this document.¶
6. Security Considerations
This section is modeled after the template described in Section 3.7.1 of [RFC9907].¶
The "ietf
The Network Configuration Access Control Model (NACM) [RFC8341] provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.¶
There are a number of data nodes defined in this YANG module that are
writable
- 'server':
-
This list contains the data nodes used to control the TACACS+ servers used by the device. Unauthorized access to this list could enable an attacker to assume complete control over the device by pointing to a compromised TACACS+ server, or to modify the counters to hide attacks against the device.¶
- 'shared-secret':
-
This leaf controls the key known to both the TACACS+ client and server. Unauthorized access to this leaf could make the device vulnerable to attacks; therefore, it has been restricted using the "default
-deny -all" access control defined in [RFC8341]. When setting, it is highly recommended that the leaf is at least 32 characters long and sufficiently complex with a mix of different character types, i.e., upper case, lower case, numeric, and punctuation.¶ - 'client
-identity' and 'server -authentication' : -
Any modification to a key or reference to a key may dramatically alter the implemented security policy. For this reason, the NACM extension "default
-deny -write" has been set.¶
There are no particularly sensitive readable data nodes.¶
There are no particularly sensitive RPC or action operations.¶
This YANG module uses groupings from other YANG modules that define nodes that may be considered sensitive or vulnerable in network environments. Refer to Section 5.3 of [RFC9642] and Section 5.3 of [RFC9645] for information as to which nodes may be considered sensitive or vulnerable in network environments.¶
7. IANA Considerations
IANA has registered the following URI in the "ns" registry within the "IETF XML Registry" [RFC3688]:¶
- URI:
- urn
:ietf :params :xml :ns :yang :ietf -system -tacacs -plus¶ - Registrant Contact:
- The IESG.¶
- XML:
- N/A; the requested URI is an XML namespace.¶
IANA has registered the following YANG module in the "YANG Module Names" registry [RFC6020] within the "YANG Parameters" registry group:¶
8. References
8.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC3688]
-
Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10
.17487 , , <https:///RFC3688 www >..rfc -editor .org /info /rfc3688 - [RFC6020]
-
Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10
.17487 , , <https:///RFC6020 www >..rfc -editor .org /info /rfc6020 - [RFC6066]
-
Eastlake 3rd, D., "Transport Layer Security (TLS) Extensions: Extension Definitions", RFC 6066, DOI 10
.17487 , , <https:///RFC6066 www >..rfc -editor .org /info /rfc6066 - [RFC6520]
-
Seggelmann, R., Tuexen, M., and M. Williams, "Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension", RFC 6520, DOI 10
.17487 , , <https:///RFC6520 www >..rfc -editor .org /info /rfc6520 - [RFC7317]
-
Bierman, A. and M. Bjorklund, "A YANG Data Model for System Management", RFC 7317, DOI 10
.17487 , , <https:///RFC7317 www >..rfc -editor .org /info /rfc7317 - [RFC7950]
-
Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10
.17487 , , <https:///RFC7950 www >..rfc -editor .org /info /rfc7950 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8341]
-
Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10
.17487 , , <https:///RFC8341 www >..rfc -editor .org /info /rfc8341 - [RFC8342]
-
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10
.17487 , , <https:///RFC8342 www >..rfc -editor .org /info /rfc8342 - [RFC8343]
-
Bjorklund, M., "A YANG Data Model for Interface Management", RFC 8343, DOI 10
.17487 , , <https:///RFC8343 www >..rfc -editor .org /info /rfc8343 - [RFC8446]
-
Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10
.17487 , , <https:///RFC8446 www >..rfc -editor .org /info /rfc8446 - [RFC8529]
-
Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. Liu, "YANG Data Model for Network Instances", RFC 8529, DOI 10
.17487 , , <https:///RFC8529 www >..rfc -editor .org /info /rfc8529 - [RFC9257]
-
Housley, R., Hoyland, J., Sethi, M., and C. A. Wood, "Guidance for External Pre-Shared Key (PSK) Usage in TLS", RFC 9257, DOI 10
.17487 , , <https:///RFC9257 www >..rfc -editor .org /info /rfc9257 - [RFC9258]
-
Benjamin, D. and C. A. Wood, "Importing External Pre-Shared Keys (PSKs) for TLS 1.3", RFC 9258, DOI 10
.17487 , , <https:///RFC9258 www >..rfc -editor .org /info /rfc9258 - [RFC9640]
-
Watsen, K., "YANG Data Types and Groupings for Cryptography", RFC 9640, DOI 10
.17487 , , <https:///RFC9640 www >..rfc -editor .org /info /rfc9640 - [RFC9641]
-
Watsen, K., "A YANG Data Model for a Truststore", RFC 9641, DOI 10
.17487 , , <https:///RFC9641 www >..rfc -editor .org /info /rfc9641 - [RFC9642]
-
Watsen, K., "A YANG Data Model for a Keystore", RFC 9642, DOI 10
.17487 , , <https:///RFC9642 www >..rfc -editor .org /info /rfc9642 - [RFC9645]
-
Watsen, K., "YANG Groupings for TLS Clients and TLS Servers", RFC 9645, DOI 10
.17487 , , <https:///RFC9645 www >..rfc -editor .org /info /rfc9645 - [RFC9887]
-
Dahm, T., Heasley, J., Medway Gash, D.C., and A. Ota, "Terminal Access Controller Access-Control System Plus (TACACS+) over TLS 1.3", RFC 9887, DOI 10
.17487 , , <https:///RFC9887 www >..rfc -editor .org /info /rfc9887 - [RFC9911]
-
Schönwälder, J., Ed., "Common YANG Data Types", RFC 9911, DOI 10
.17487 , , <https:///RFC9911 www >..rfc -editor .org /info /rfc9911
8.2. Informative References
- [RFC2865]
-
Rigney, C., Willens, S., Rubens, A., and W. Simpson, "Remote Authentication Dial In User Service (RADIUS)", RFC 2865, DOI 10
.17487 , , <https:///RFC2865 www >..rfc -editor .org /info /rfc2865 - [RFC4252]
-
Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) Authentication Protocol", RFC 4252, DOI 10
.17487 , , <https:///RFC4252 www >..rfc -editor .org /info /rfc4252 - [RFC6241]
-
Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10
.17487 , , <https:///RFC6241 www >..rfc -editor .org /info /rfc6241 - [RFC8040]
-
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10
.17487 , , <https:///RFC8040 www >..rfc -editor .org /info /rfc8040 - [RFC8340]
-
Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10
.17487 , , <https:///RFC8340 www >..rfc -editor .org /info /rfc8340 - [RFC8792]
-
Watsen, K., Auerswald, E., Farrel, A., and Q. Wu, "Handling Long Lines in Content of Internet-Drafts and RFCs", RFC 8792, DOI 10
.17487 , , <https:///RFC8792 www >..rfc -editor .org /info /rfc8792 - [RFC8907]
-
Dahm, T., Ota, A., Medway Gash, D.C., Carrel, D., and L. Grant, "The Terminal Access Controller Access-Control System Plus (TACACS+) Protocol", RFC 8907, DOI 10
.17487 , , <https:///RFC8907 www >..rfc -editor .org /info /rfc8907 - [RFC9000]
-
Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10
.17487 , , <https:///RFC9000 www >..rfc -editor .org /info /rfc9000 - [RFC9105]
-
Wu, B., Ed., Zheng, G., and M. Wang, Ed., "A YANG Data Model for Terminal Access Controller Access-Control System Plus (TACACS+)", RFC 9105, DOI 10
.17487 , , <https:///RFC9105 www >..rfc -editor .org /info /rfc9105 - [RFC9907]
-
Bierman, A., Boucadair, M., Ed., and Q. Wu, "Guidelines for Authors and Reviewers of Documents Containing YANG Data Models", BCP 216, RFC 9907, DOI 10
.17487 , , <https:///RFC9907 www >..rfc -editor .org /info /rfc9907
Appendix B. TACACS+ over TLS Examples
This section provides examples to illustrate the configuration of TACACS+ over TLS clients.¶
These examples follow the convention used in Section 1.5 of [RFC9645] for binary data that has been base64 encoded.¶
B.1. Example TACACS+ Authentication Configuration with Explicit Certificate Definitions
Figure 4 shows a configuration example with 'inline
B.2. Example TACACS+ Authentication Configuration with Certificate References
Figure 5 shows a configuration example with credential references for multiple service instances. Four server instances are configured, all using the same credentials. These instances form a redundancy group for both IPv4 and IPv6.¶
Appendix C. Full Tree
The full tree structure is shown below:¶
Acknowledgments
The document leverages data structures defined in [RFC9645].¶
Thanks to Joe Clarke and Tom Petch for the review and comments.¶
Thanks to Reshad Rahman for the yangdoctors review, Tina Tsou for the opsdir review, Ines Robles for the genart review, and Robert Sparks for the secdir review.¶
Thanks Mahesh Jethanandani for the AD review.¶
Thanks Erik Kline and Éric Vyncke for the IESG review.¶
Bo Wu, Guangying Zheng, and Michael Wang were the authors of [RFC9105].¶
Acknowledgments from RFC 9105
The authors wish to thank Alex Campbell, John Heasley, Ebben Aries, Alan DeKok, Joe Clarke, Tom Petch, Robert Wilton, and many others for their helpful comments and suggestions.¶