1import ../make-test-python.nix ({pkgs, ...}: {
2 name = "kerberos_server-heimdal";
3 nodes.machine = { config, libs, pkgs, ...}:
4 { services.kerberos_server =
5 { enable = true;
6 realms = {
7 "FOO.BAR".acl = [{principal = "admin"; access = ["add" "cpw"];}];
8 };
9 };
10 krb5 = {
11 enable = true;
12 kerberos = pkgs.heimdal;
13 libdefaults = {
14 default_realm = "FOO.BAR";
15 };
16 realms = {
17 "FOO.BAR" = {
18 admin_server = "machine";
19 kdc = "machine";
20 };
21 };
22 };
23 };
24
25 testScript = ''
26 machine.succeed(
27 "kadmin -l init --realm-max-ticket-life='8 day' --realm-max-renewable-life='10 day' FOO.BAR",
28 "systemctl restart kadmind.service kdc.service",
29 )
30
31 for unit in ["kadmind", "kdc", "kpasswdd"]:
32 machine.wait_for_unit(f"{unit}.service")
33
34 machine.succeed(
35 "kadmin -l add --password=admin_pw --use-defaults admin",
36 "kadmin -l ext_keytab --keytab=admin.keytab admin",
37 "kadmin -p admin -K admin.keytab add --password=alice_pw --use-defaults alice",
38 "kadmin -l ext_keytab --keytab=alice.keytab alice",
39 "kinit -kt alice.keytab alice",
40 )
41 '';
42})