For this example, we will use two realms, ENG.EAST.ACME.COM and EAST.ACME.COM. Cross-realm authentication will be established in both directions. This procedure must be completed on the master KDC in both realms.
Prerequisites for establishing hierarchical cross-realm authentication.
This procedure requires that the master KDC for each realm has been configured. To fully test the process, several clients or slave KDCs must be installed.
Become root on the first master KDC.
Create ticket-granting ticket service principals for the two realms using kadmin.
You must log on with one of the admin principal names that was created when configuring the master KDC.
# /usr/krb5/sbin/kadmin -p kws/admin Enter password: <Enter kws/admin password> kadmin: addprinc krbtgt/ENG.EAST.ACME.COM@EAST.ACME.COM Enter password for principal krgtgt/ENG.EAST.ACME.COM@EAST.ACME.COM: <type the password> kadmin: addprinc krbtgt/EAST.ACME.COM@ENG.EAST.ACME.COM Enter password for principal krgtgt/EAST.ACME.COM@ENG.EAST.ACME.COM: <type the password> kadmin: quit |
The password entered for each service principal must be identical in both KDCs; which means that the password for krbtgt/ENG.EAST.ACME.COM@EAST.ACME.COM must be the same in both realms.
Add entries to the Kerberos configuration file to define domain names for every realm (krb5.conf).
# cat /etc/krb5/krb5.conf [libdefaults] . . [domain_realm] .eng.east.acme.com = ENG.EAST.ACME.COM .east.acme.com = EAST.ACME.COM |
In this example, domain names for the ENG.EAST.ACME.COM and EAST.ACME.COM realms are defined. It is important to include the subdomain first, since the file is searched top down.
Copy the Kerberos configuration file to all clients in this realm.
In order for the cross-realm authentication to work, all systems (including slave KDCs and other servers) must have the new version of the Kerberos configuration file (/etc/krb5/krb5.conf) installed.
Repeat these steps in the second realm.